f32 gSineTable[] = {
    0.000000000f, 0.0015339801f,0.0030679568f,0.004601926f,
    0.0061358847f,0.007669829f, 0.009203754f, 0.010737659f,
    0.012271538f, 0.0138053885f,0.015339206f, 0.016872987f,
    0.018406730f, 0.019940428f, 0.021474080f, 0.023007682f,
    0.024541229f, 0.026074719f, 0.027608145f, 0.029141508f,
    0.030674804f, 0.032208025f, 0.033741172f, 0.035274237f,
    0.036807224f, 0.038340122f, 0.039872926f, 0.041405641f,
    0.042938258f, 0.044470772f, 0.046003181f, 0.047535483f,
    0.049067676f, 0.050599750f, 0.052131705f, 0.053663537f,
    0.055195246f, 0.056726821f, 0.058258265f, 0.059789572f,
    0.061320737f, 0.062851757f, 0.064382628f, 0.065913349f,
    0.067443922f, 0.068974331f, 0.070504576f, 0.072034650f,
    0.073564567f, 0.075094298f, 0.076623864f, 0.078153245f,
    0.079682440f, 0.081211448f, 0.082740262f, 0.084268890f,
    0.085797310f, 0.087325536f, 0.088853553f, 0.090381362f,
    0.091908954f, 0.093436338f, 0.094963498f, 0.096490428f,
    0.098017141f, 0.099543616f, 0.101069860f, 0.102595866f,
    0.104121633f, 0.105647154f, 0.107172422f, 0.108697444f,
    0.110222206f, 0.111746714f, 0.113270953f, 0.114794925f,
    0.116318628f, 0.117842063f, 0.119365215f, 0.120888084f,
    0.122410677f, 0.123932973f, 0.125454977f, 0.126976699f,
    0.128498107f, 0.130019218f, 0.131540030f, 0.133060530f,
    0.134580702f, 0.136100575f, 0.137620121f, 0.139139339f,
    0.140658244f, 0.142176807f, 0.143695027f, 0.145212919f,
    0.146730468f, 0.148247674f, 0.149764538f, 0.151281044f,
    0.152797192f, 0.154312968f, 0.155828401f, 0.157343462f,
    0.158858150f, 0.160372451f, 0.161886394f, 0.163399950f,
    0.164913118f, 0.166425899f, 0.167938292f, 0.169450298f,
    0.170961887f, 0.172473088f, 0.173983872f, 0.175494254f,
    0.177004218f, 0.178513765f, 0.180022895f, 0.181531608f,
    0.183039889f, 0.184547737f, 0.186055154f, 0.187562123f,
    0.189068660f, 0.190574750f, 0.192080393f, 0.193585590f,
    0.195090324f, 0.196594596f, 0.198098406f, 0.199601755f,
    0.201104641f, 0.202607036f, 0.204108968f, 0.205610409f,
    0.207111374f, 0.208611846f, 0.210111842f, 0.211611331f,
    0.213110313f, 0.214608818f, 0.216106802f, 0.217604280f,
    0.219101235f, 0.220597684f, 0.222093627f, 0.223589033f,
    0.225083917f, 0.226578265f, 0.228072077f, 0.229565367f,
    0.231058106f, 0.232550308f, 0.234041959f, 0.235533059f,
    0.237023607f, 0.238513589f, 0.240003020f, 0.241491884f,
    0.242980182f, 0.244467899f, 0.245955050f, 0.247441620f,
    0.248927608f, 0.250413001f, 0.251897812f, 0.253382027f,
    0.254865646f, 0.256348670f, 0.257831097f, 0.259312928f,
    0.260794103f, 0.262274712f, 0.263754666f, 0.265234023f,
    0.266712755f, 0.268190861f, 0.269668311f, 0.271145165f,
    0.272621363f, 0.274096906f, 0.275571823f, 0.277046084f,
    0.278519690f, 0.279992640f, 0.281464934f, 0.282936573f,
    0.284407526f, 0.285877824f, 0.287347466f, 0.288816422f,
    0.290284663f, 0.291752249f, 0.293219149f, 0.294685364f,
    0.296150893f, 0.297615707f, 0.299079835f, 0.300543249f,
    0.302005947f, 0.303467959f, 0.304929227f, 0.306389809f,
    0.307849646f, 0.309308767f, 0.310767144f, 0.312224805f,
    0.313681751f, 0.315137923f, 0.316593379f, 0.318048090f,
    0.319502026f, 0.320955247f, 0.322407693f, 0.323859364f,
    0.325310290f, 0.326760441f, 0.328209847f, 0.329658449f,
    0.331106305f, 0.332553357f, 0.333999664f, 0.335445136f,
    0.336889863f, 0.338333756f, 0.339776874f, 0.341219217f,
    0.342660725f, 0.344101429f, 0.345541328f, 0.346980423f,
    0.348418683f, 0.349856138f, 0.351292759f, 0.352728546f,
    0.354163527f, 0.355597675f, 0.357030958f, 0.358463407f,
    0.359895051f, 0.361325800f, 0.362755716f, 0.364184797f,
    0.365612984f, 0.367040336f, 0.368466824f, 0.369892448f,
    0.371317208f, 0.372741073f, 0.374164075f, 0.375586182f,
    0.377007425f, 0.378427744f, 0.379847199f, 0.381265759f,
    0.382683426f, 0.384100199f, 0.385516047f, 0.386931002f,
    0.388345033f, 0.389758170f, 0.391170382f, 0.392581671f,
    0.393992037f, 0.395401478f, 0.396809995f, 0.398217559f,
    0.399624199f, 0.401029885f, 0.402434647f, 0.403838456f,
    0.405241311f, 0.406643212f, 0.408044159f, 0.409444153f,
    0.410843164f, 0.412241220f, 0.413638324f, 0.415034413f,
    0.416429549f, 0.417823702f, 0.419216901f, 0.420609087f,
    0.422000259f, 0.423390478f, 0.424779683f, 0.426167876f,
    0.427555084f, 0.428941280f, 0.430326492f, 0.431710660f,
    0.433093816f, 0.434475958f, 0.435857087f, 0.437237173f,
    0.438616246f, 0.439994276f, 0.441371262f, 0.442747235f,
    0.444122136f, 0.445496023f, 0.446868837f, 0.448240608f,
    0.449611336f, 0.450980991f, 0.452349573f, 0.453717113f,
    0.455083579f, 0.456448972f, 0.457813293f, 0.459176540f,
    0.460538715f, 0.461899787f, 0.463259786f, 0.464618683f,
    0.465976506f, 0.467333198f, 0.468688816f, 0.470043331f,
    0.471396744f, 0.472749025f, 0.474100202f, 0.475450277f,
    0.476799220f, 0.478147060f, 0.479493767f, 0.480839342f,
    0.482183784f, 0.483527064f, 0.484869242f, 0.486210287f,
    0.487550169f, 0.488888890f, 0.490226477f, 0.491562903f,
    0.492898196f, 0.494232297f, 0.495565265f, 0.496897042f,
    0.498227656f, 0.499557108f, 0.500885367f, 0.502212465f,
    0.503538370f, 0.504863083f, 0.506186664f, 0.507508993f,
    0.508830130f, 0.510150075f, 0.511468828f, 0.512786388f,
    0.514102757f, 0.515417874f, 0.516731799f, 0.518044531f,
    0.519356012f, 0.520666242f, 0.521975279f, 0.523283124f,
    0.524589658f, 0.525895000f, 0.527199149f, 0.528501987f,
    0.529803634f, 0.531104028f, 0.532403111f, 0.533701003f,
    0.534997642f, 0.536292970f, 0.537587047f, 0.538879931f,
    0.540171444f, 0.541461766f, 0.542750776f, 0.544038534f,
    0.545324981f, 0.546610177f, 0.547894061f, 0.549176633f,
    0.550457954f, 0.551737964f, 0.553016722f, 0.554294109f,
    0.555570245f, 0.556845009f, 0.558118522f, 0.559390724f,
    0.560661554f, 0.561931133f, 0.563199341f, 0.564466238f,
    0.565731823f, 0.566996038f, 0.568258941f, 0.569520533f,
    0.570780754f, 0.572039604f, 0.573297143f, 0.574553370f,
    0.575808167f, 0.577061653f, 0.578313768f, 0.579564571f,
    0.580813944f, 0.582062006f, 0.583308637f, 0.584553957f,
    0.585797846f, 0.587040365f, 0.588281572f, 0.589521289f,
    0.590759695f, 0.591996670f, 0.593232274f, 0.594466507f,
    0.595699310f, 0.596930683f, 0.598160684f, 0.599389315f,
    0.600616455f, 0.601842225f, 0.603066623f, 0.604289532f,
    0.605511069f, 0.606731117f, 0.607949793f, 0.609167039f,
    0.610382795f, 0.611597180f, 0.612810075f, 0.614021540f,
    0.615231574f, 0.616440177f, 0.617647290f, 0.618852973f,
    0.620057225f, 0.621259987f, 0.622461259f, 0.623661101f,
    0.624859512f, 0.626056373f, 0.627251804f, 0.628445745f,
    0.629638255f, 0.630829215f, 0.632018745f, 0.633206785f,
    0.634393275f, 0.635578334f, 0.636761844f, 0.637943923f,
    0.639124453f, 0.640303493f, 0.641481042f, 0.642657042f,
    0.643831551f, 0.645004511f, 0.646176040f, 0.647345960f,
    0.648514390f, 0.649681330f, 0.650846660f, 0.652010560f,
    0.653172851f, 0.654333591f, 0.655492842f, 0.656650543f,
    0.657806695f, 0.658961296f, 0.660114348f, 0.661265850f,
    0.662415802f, 0.663564146f, 0.664710999f, 0.665856242f,
    0.666999936f, 0.668142021f, 0.669282615f, 0.670421541f,
    0.671558976f, 0.672694743f, 0.673829019f, 0.674961627f,
    0.676092684f, 0.677222192f, 0.678350031f, 0.679476321f,
    0.680601001f, 0.681724072f, 0.682845533f, 0.683965385f,
    0.685083687f, 0.686200321f, 0.687315345f, 0.688428760f,
    0.689540565f, 0.690650702f, 0.691759229f, 0.692866147f,
    0.693971455f, 0.695075095f, 0.696177125f, 0.697277486f,
    0.698376238f, 0.699473321f, 0.700568795f, 0.701662600f,
    0.702754736f, 0.703845263f, 0.704934061f, 0.706021249f,
    0.707106769f, 0.708190620f, 0.709272802f, 0.710353374f,
    0.711432219f, 0.712509394f, 0.713584840f, 0.714658678f,
    0.715730846f, 0.716801286f, 0.717870057f, 0.718937099f,
    0.720002532f, 0.721066177f, 0.722128212f, 0.723188460f,
    0.724247098f, 0.725303948f, 0.726359129f, 0.727412641f,
    0.728464365f, 0.729514420f, 0.730562747f, 0.731609404f,
    0.732654274f, 0.733697414f, 0.734738886f, 0.735778570f,
    0.736816585f, 0.737852812f, 0.738887310f, 0.739920080f,
    0.740951121f, 0.741980433f, 0.743007958f, 0.744033754f,
    0.745057762f, 0.746080101f, 0.747100592f, 0.748119354f,
    0.749136388f, 0.750151634f, 0.751165152f, 0.752176821f,
    0.753186822f, 0.754194975f, 0.755201399f, 0.756205976f,
    0.757208824f, 0.758209884f, 0.759209216f, 0.760206699f,
    0.761202395f, 0.762196302f, 0.763188422f, 0.764178753f,
    0.765167236f, 0.766153991f, 0.767138898f, 0.768122017f,
    0.769103348f, 0.770082831f, 0.771060526f, 0.772036374f,
    0.773010433f, 0.773982704f, 0.774953127f, 0.775921702f,
    0.776888490f, 0.777853429f, 0.778816521f, 0.779777765f,
    0.780737221f, 0.781694829f, 0.782650590f, 0.783604503f,
    0.784556568f, 0.785506845f, 0.786455214f, 0.787401736f,
    0.788346410f, 0.789289236f, 0.790230215f, 0.791169345f,
    0.792106569f, 0.793041945f, 0.793975472f, 0.794907153f,
    0.795836926f, 0.796764791f, 0.797690868f, 0.798614979f,
    0.799537241f, 0.800457656f, 0.801376164f, 0.802292824f,
    0.803207517f, 0.804120362f, 0.805031359f, 0.805940390f,
    0.806847572f, 0.807752848f, 0.808656156f, 0.809557617f,
    0.810457170f, 0.811354876f, 0.812250614f, 0.813144386f,
    0.814036310f, 0.814926326f, 0.815814435f, 0.816700578f,
    0.817584813f, 0.818467140f, 0.819347501f, 0.820225954f,
    0.821102500f, 0.821977139f, 0.822849810f, 0.823720515f,
    0.824589312f, 0.825456142f, 0.826321065f, 0.827184021f,
    0.828045070f, 0.828904092f, 0.829761207f, 0.830616415f,
    0.831469595f, 0.832320869f, 0.833170176f, 0.834017515f,
    0.834862888f, 0.835706294f, 0.836547732f, 0.837387204f,
    0.838224709f, 0.839060247f, 0.839893818f, 0.840725362f,
    0.841554999f, 0.842382610f, 0.843208253f, 0.844031870f,
    0.844853580f, 0.845673263f, 0.846490920f, 0.847306609f,
    0.848120332f, 0.848932028f, 0.849741757f, 0.850549459f,
    0.851355195f, 0.852158904f, 0.852960587f, 0.853760302f,
    0.854557991f, 0.855353653f, 0.856147349f, 0.856938958f,
    0.857728601f, 0.858516216f, 0.859301805f, 0.860085368f,
    0.860866964f, 0.861646473f, 0.862423956f, 0.863199413f,
    0.863972843f, 0.864744246f, 0.865513623f, 0.866280973f,
    0.867046237f, 0.867809474f, 0.868570685f, 0.869329870f,
    0.870086968f, 0.870842040f, 0.871595085f, 0.872346044f,
    0.873094976f, 0.873841822f, 0.874586642f, 0.875329375f,
    0.876070082f, 0.876808703f, 0.877545297f, 0.878279805f,
    0.879012227f, 0.879742622f, 0.880470872f, 0.881197095f,
    0.881921291f, 0.882643342f, 0.883363366f, 0.884081244f,
    0.884797096f, 0.885510862f, 0.886222541f, 0.886932135f,
    0.887639642f, 0.888345063f, 0.889048338f, 0.889749587f,
    0.890448749f, 0.891145766f, 0.891840696f, 0.892533541f,
    0.893224299f, 0.893912971f, 0.894599497f, 0.895283937f,
    0.895966232f, 0.896646500f, 0.897324562f, 0.898000598f,
    0.898674488f, 0.899346232f, 0.900015891f, 0.900683403f,
    0.901348829f, 0.902012169f, 0.902673304f, 0.903332353f,
    0.903989315f, 0.904644072f, 0.905296743f, 0.905947268f,
    0.906595707f, 0.907242000f, 0.907886088f, 0.908528090f,
    0.909168005f, 0.909805715f, 0.910441279f, 0.911074758f,
    0.911706030f, 0.912335157f, 0.912962198f, 0.913587034f,
    0.914209783f, 0.914830327f, 0.915448725f, 0.916064978f,
    0.916679084f, 0.917290986f, 0.917900801f, 0.918508410f,
    0.919113874f, 0.919717133f, 0.920318305f, 0.920917213f,
    0.921514034f, 0.922108650f, 0.922701120f, 0.923291445f,
    0.923879504f, 0.924465477f, 0.925049245f, 0.925630808f,
    0.926210225f, 0.926787496f, 0.927362502f, 0.927935421f,
    0.928506076f, 0.929074585f, 0.929640889f, 0.930205047f,
    0.930766940f, 0.931326687f, 0.931884289f, 0.932439625f,
    0.932992816f, 0.933543801f, 0.934092522f, 0.934639156f,
    0.935183525f, 0.935725689f, 0.936265647f, 0.936803460f,
    0.937339008f, 0.937872350f, 0.938403547f, 0.938932478f,
    0.939459205f, 0.939983726f, 0.940506041f, 0.941026151f,
    0.941544056f, 0.942059755f, 0.942573190f, 0.943084419f,
    0.943593442f, 0.944100261f, 0.944604814f, 0.945107222f,
    0.945607305f, 0.946105242f, 0.946600914f, 0.947094381f,
    0.947585583f, 0.948074579f, 0.948561370f, 0.949045897f,
    0.949528158f, 0.950008273f, 0.950486064f, 0.950961649f,
    0.951435030f, 0.951906145f, 0.952374995f, 0.952841640f,
    0.953306019f, 0.953768194f, 0.954228103f, 0.954685748f,
    0.955141187f, 0.955594361f, 0.956045270f, 0.956493914f,
    0.956940353f, 0.957384527f, 0.957826436f, 0.958266079f,
    0.958703458f, 0.959138632f, 0.959571540f, 0.960002124f,
    0.960430503f, 0.960856616f, 0.961280465f, 0.961702049f,
    0.962121427f, 0.962538481f, 0.962953269f, 0.963365793f,
    0.963776052f, 0.964184046f, 0.964589775f, 0.964993238f,
    0.965394437f, 0.965793371f, 0.966189981f, 0.966584384f,
    0.966976464f, 0.967366278f, 0.967753828f, 0.968139112f,
    0.968522072f, 0.968902826f, 0.969281256f, 0.969657362f,
    0.970031261f, 0.970402837f, 0.970772147f, 0.971139133f,
    0.971503913f, 0.971866310f, 0.972226501f, 0.972584367f,
    0.972939968f, 0.973293245f, 0.973644257f, 0.973992944f,
    0.974339366f, 0.974683523f, 0.975025356f, 0.975364864f,
    0.975702107f, 0.976037085f, 0.976369739f, 0.976700068f,
    0.977028131f, 0.977353871f, 0.977677345f, 0.977998495f,
    0.978317380f, 0.978633940f, 0.978948176f, 0.979260147f,
    0.979569793f, 0.979877114f, 0.980182111f, 0.980484843f,
    0.980785251f, 0.981083393f, 0.981379211f, 0.981672704f,
    0.981963873f, 0.982252717f, 0.982539296f, 0.982823551f,
    0.983105481f, 0.983385086f, 0.983662426f, 0.983937442f,
    0.984210074f, 0.984480441f, 0.984748483f, 0.985014260f,
    0.985277653f, 0.985538721f, 0.985797524f, 0.986053944f,
    0.986308098f, 0.986559927f, 0.986809373f, 0.987056553f,
    0.987301409f, 0.987543941f, 0.987784147f, 0.988022029f,
    0.988257587f, 0.988490820f, 0.988721669f, 0.988950253f,
    0.989176512f, 0.989400446f, 0.989621997f, 0.989841282f,
    0.990058184f, 0.990272820f, 0.990485072f, 0.990695000f,
    0.990902662f, 0.991107941f, 0.991310835f, 0.991511464f,
    0.991709769f, 0.991905689f, 0.992099285f, 0.992290616f,
    0.992479563f, 0.992666125f, 0.992850423f, 0.993032336f,
    0.993211925f, 0.993389189f, 0.993564129f, 0.993736744f,
    0.993906975f, 0.994074881f, 0.994240463f, 0.994403660f,
    0.994564593f, 0.994723141f, 0.994879305f, 0.995033205f,
    0.995184720f, 0.995333910f, 0.995480776f, 0.995625257f,
    0.995767415f, 0.995907247f, 0.996044695f, 0.996179819f,
    0.996312618f, 0.996443033f, 0.996571124f, 0.996696889f,
    0.996820271f, 0.996941328f, 0.997060061f, 0.997176409f,
    0.997290432f, 0.997402132f, 0.997511446f, 0.997618437f,
    0.997723043f, 0.997825325f, 0.997925282f, 0.998022854f,
    0.998118103f, 0.998211026f, 0.998301566f, 0.998389721f,
    0.998475552f, 0.998559058f, 0.998640239f, 0.998719037f,
    0.998795450f, 0.998869538f, 0.998941302f, 0.999010682f,
    0.999077737f, 0.999142408f, 0.999204755f, 0.999264777f,
    0.999322355f, 0.999377668f, 0.999430597f, 0.999481201f,
    0.999529421f, 0.999575317f, 0.999618828f, 0.999660015f,
    0.999698818f, 0.999735296f, 0.999769390f, 0.999801159f,
    0.999830604f, 0.999857664f, 0.999882340f, 0.999904692f,
    0.999924719f, 0.999942362f, 0.999957621f, 0.999970615f,
    0.999981165f, 0.999989390f, 0.999995291f, 0.999998808f,
#ifndef AVOID_UB
};

f32 gCosineTable[0x1000] = {
#endif
    // cosine
    1.000000000f, 0.999998808f, 0.999995291f, 0.999989390f,
    0.999981165f, 0.999970615f, 0.999957621f, 0.999942362f,
    0.999924719f, 0.999904692f, 0.999882340f, 0.999857664f,
    0.999830604f, 0.999801159f, 0.999769390f, 0.999735296f,
    0.999698818f, 0.999660015f, 0.999618828f, 0.999575317f,
    0.999529421f, 0.999481201f, 0.999430597f, 0.999377668f,
    0.999322355f, 0.999264777f, 0.999204755f, 0.999142408f,
    0.999077737f, 0.999010682f, 0.998941302f, 0.998869538f,
    0.998795450f, 0.998719037f, 0.998640239f, 0.998559058f,
    0.998475552f, 0.998389721f, 0.998301566f, 0.998211026f,
    0.998118103f, 0.998022854f, 0.997925282f, 0.997825325f,
    0.997723043f, 0.997618437f, 0.997511446f, 0.997402132f,
    0.997290432f, 0.997176409f, 0.997060061f, 0.996941328f,
    0.996820271f, 0.996696889f, 0.996571124f, 0.996443033f,
    0.996312618f, 0.996179819f, 0.996044695f, 0.995907247f,
    0.995767415f, 0.995625257f, 0.995480776f, 0.995333910f,
    0.995184720f, 0.995033205f, 0.994879305f, 0.994723141f,
    0.994564593f, 0.994403660f, 0.994240463f, 0.994074881f,
    0.993906975f, 0.993736744f, 0.993564129f, 0.993389189f,
    0.993211925f, 0.993032336f, 0.992850423f, 0.992666125f,
    0.992479563f, 0.992290616f, 0.992099285f, 0.991905689f,
    0.991709769f, 0.991511464f, 0.991310835f, 0.991107941f,
    0.990902662f, 0.990695000f, 0.990485072f, 0.990272820f,
    0.990058184f, 0.989841282f, 0.989621997f, 0.989400446f,
    0.989176512f, 0.988950253f, 0.988721669f, 0.988490820f,
    0.988257587f, 0.988022029f, 0.987784147f, 0.987543941f,
    0.987301409f, 0.987056553f, 0.986809373f, 0.986559927f,
    0.986308098f, 0.986053944f, 0.985797524f, 0.985538721f,
    0.985277653f, 0.985014260f, 0.984748483f, 0.984480441f,
    0.984210074f, 0.983937442f, 0.983662426f, 0.983385086f,
    0.983105481f, 0.982823551f, 0.982539296f, 0.982252717f,
    0.981963873f, 0.981672704f, 0.981379211f, 0.981083393f,
    0.980785251f, 0.980484843f, 0.980182111f, 0.979877114f,
    0.979569793f, 0.979260147f, 0.978948176f, 0.978633940f,
    0.978317380f, 0.977998495f, 0.977677345f, 0.977353871f,
    0.977028131f, 0.976700068f, 0.976369739f, 0.976037085f,
    0.975702107f, 0.975364864f, 0.975025356f, 0.974683523f,
    0.974339366f, 0.973992944f, 0.973644257f, 0.973293245f,
    0.972939968f, 0.972584367f, 0.972226501f, 0.971866310f,
    0.971503913f, 0.971139133f, 0.970772147f, 0.970402837f,
    0.970031261f, 0.969657362f, 0.969281256f, 0.968902826f,
    0.968522072f, 0.968139112f, 0.967753828f, 0.967366278f,
    0.966976464f, 0.966584384f, 0.966189981f, 0.965793371f,
    0.965394437f, 0.964993238f, 0.964589775f, 0.964184046f,
    0.963776052f, 0.963365793f, 0.962953269f, 0.962538481f,
    0.962121427f, 0.961702049f, 0.961280465f, 0.960856616f,
    0.960430503f, 0.960002124f, 0.959571540f, 0.959138632f,
    0.958703458f, 0.958266079f, 0.957826436f, 0.957384527f,
    0.956940353f, 0.956493914f, 0.956045270f, 0.955594361f,
    0.955141187f, 0.954685748f, 0.954228103f, 0.953768194f,
    0.953306019f, 0.952841640f, 0.952374995f, 0.951906145f,
    0.951435030f, 0.950961649f, 0.950486064f, 0.950008273f,
    0.949528158f, 0.949045897f, 0.948561370f, 0.948074579f,
    0.947585583f, 0.947094381f, 0.946600914f, 0.946105242f,
    0.945607305f, 0.945107222f, 0.944604814f, 0.944100261f,
    0.943593442f, 0.943084419f, 0.942573190f, 0.942059755f,
    0.941544056f, 0.941026151f, 0.940506041f, 0.939983726f,
    0.939459205f, 0.938932478f, 0.938403547f, 0.937872350f,
    0.937339008f, 0.936803460f, 0.936265647f, 0.935725689f,
    0.935183525f, 0.934639156f, 0.934092522f, 0.933543801f,
    0.932992816f, 0.932439625f, 0.931884289f, 0.931326687f,
    0.930766940f, 0.930205047f, 0.929640889f, 0.929074585f,
    0.928506076f, 0.927935421f, 0.927362502f, 0.926787496f,
    0.926210225f, 0.925630808f, 0.925049245f, 0.924465477f,
    0.923879504f, 0.923291445f, 0.922701120f, 0.922108650f,
    0.921514034f, 0.920917213f, 0.920318305f, 0.919717133f,
    0.919113874f, 0.918508410f, 0.917900801f, 0.917290986f,
    0.916679084f, 0.916064978f, 0.915448725f, 0.914830327f,
    0.914209783f, 0.913587034f, 0.912962198f, 0.912335157f,
    0.911706030f, 0.911074758f, 0.910441279f, 0.909805715f,
    0.909168005f, 0.908528090f, 0.907886088f, 0.907242000f,
    0.906595707f, 0.905947268f, 0.905296743f, 0.904644072f,
    0.903989315f, 0.903332353f, 0.902673304f, 0.902012169f,
    0.901348829f, 0.900683403f, 0.900015891f, 0.899346232f,
    0.898674488f, 0.898000598f, 0.897324562f, 0.896646500f,
    0.895966232f, 0.895283937f, 0.894599497f, 0.893912971f,
    0.893224299f, 0.892533541f, 0.891840696f, 0.891145766f,
    0.890448749f, 0.889749587f, 0.889048338f, 0.888345063f,
    0.887639642f, 0.886932135f, 0.886222541f, 0.885510862f,
    0.884797096f, 0.884081244f, 0.883363366f, 0.882643342f,
    0.881921291f, 0.881197095f, 0.880470872f, 0.879742622f,
    0.879012227f, 0.878279805f, 0.877545297f, 0.876808703f,
    0.876070082f, 0.875329375f, 0.874586642f, 0.873841822f,
    0.873094976f, 0.872346044f, 0.871595085f, 0.870842040f,
    0.870086968f, 0.869329870f, 0.868570685f, 0.867809474f,
    0.867046237f, 0.866280973f, 0.865513623f, 0.864744246f,
    0.863972843f, 0.863199413f, 0.862423956f, 0.861646473f,
    0.860866964f, 0.860085368f, 0.859301805f, 0.858516216f,
    0.857728601f, 0.856938958f, 0.856147349f, 0.855353653f,
    0.854557991f, 0.853760302f, 0.852960587f, 0.852158904f,
    0.851355195f, 0.850549459f, 0.849741757f, 0.848932028f,
    0.848120332f, 0.847306609f, 0.846490920f, 0.845673263f,
    0.844853580f, 0.844031870f, 0.843208253f, 0.842382610f,
    0.841554999f, 0.840725362f, 0.839893818f, 0.839060247f,
    0.838224709f, 0.837387204f, 0.836547732f, 0.835706294f,
    0.834862888f, 0.834017515f, 0.833170176f, 0.832320869f,
    0.831469595f, 0.830616415f, 0.829761207f, 0.828904092f,
    0.828045070f, 0.827184021f, 0.826321065f, 0.825456142f,
    0.824589312f, 0.823720515f, 0.822849810f, 0.821977139f,
    0.821102500f, 0.820225954f, 0.819347501f, 0.818467140f,
    0.817584813f, 0.816700578f, 0.815814435f, 0.814926326f,
    0.814036310f, 0.813144386f, 0.812250614f, 0.811354876f,
    0.810457170f, 0.809557617f, 0.808656156f, 0.807752848f,
    0.806847572f, 0.805940390f, 0.805031359f, 0.804120362f,
    0.803207517f, 0.802292824f, 0.801376164f, 0.800457656f,
    0.799537241f, 0.798614979f, 0.797690868f, 0.796764791f,
    0.795836926f, 0.794907153f, 0.793975472f, 0.793041945f,
    0.792106569f, 0.791169345f, 0.790230215f, 0.789289236f,
    0.788346410f, 0.787401736f, 0.786455214f, 0.785506845f,
    0.784556568f, 0.783604503f, 0.782650590f, 0.781694829f,
    0.780737221f, 0.779777765f, 0.778816521f, 0.777853429f,
    0.776888490f, 0.775921702f, 0.774953127f, 0.773982704f,
    0.773010433f, 0.772036374f, 0.771060526f, 0.770082831f,
    0.769103348f, 0.768122017f, 0.767138898f, 0.766153991f,
    0.765167236f, 0.764178753f, 0.763188422f, 0.762196302f,
    0.761202395f, 0.760206699f, 0.759209216f, 0.758209884f,
    0.757208824f, 0.756205976f, 0.755201399f, 0.754194975f,
    0.753186822f, 0.752176821f, 0.751165152f, 0.750151634f,
    0.749136388f, 0.748119354f, 0.747100592f, 0.746080101f,
    0.745057762f, 0.744033754f, 0.743007958f, 0.741980433f,
    0.740951121f, 0.739920080f, 0.738887310f, 0.737852812f,
    0.736816585f, 0.735778570f, 0.734738886f, 0.733697414f,
    0.732654274f, 0.731609404f, 0.730562747f, 0.729514420f,
    0.728464365f, 0.727412641f, 0.726359129f, 0.725303948f,
    0.724247098f, 0.723188460f, 0.722128212f, 0.721066177f,
    0.720002532f, 0.718937099f, 0.717870057f, 0.716801286f,
    0.715730846f, 0.714658678f, 0.713584840f, 0.712509394f,
    0.711432219f, 0.710353374f, 0.709272802f, 0.708190620f,
    0.707106769f, 0.706021249f, 0.704934061f, 0.703845263f,
    0.702754736f, 0.701662600f, 0.700568795f, 0.699473321f,
    0.698376238f, 0.697277486f, 0.696177125f, 0.695075095f,
    0.693971455f, 0.692866147f, 0.691759229f, 0.690650702f,
    0.689540565f, 0.688428760f, 0.687315345f, 0.686200321f,
    0.685083687f, 0.683965385f, 0.682845533f, 0.681724072f,
    0.680601001f, 0.679476321f, 0.678350031f, 0.677222192f,
    0.676092684f, 0.674961627f, 0.673829019f, 0.672694743f,
    0.671558976f, 0.670421541f, 0.669282615f, 0.668142021f,
    0.666999936f, 0.665856242f, 0.664710999f, 0.663564146f,
    0.662415802f, 0.661265850f, 0.660114348f, 0.658961296f,
    0.657806695f, 0.656650543f, 0.655492842f, 0.654333591f,
    0.653172851f, 0.652010560f, 0.650846660f, 0.649681330f,
    0.648514390f, 0.647345960f, 0.646176040f, 0.645004511f,
    0.643831551f, 0.642657042f, 0.641481042f, 0.640303493f,
    0.639124453f, 0.637943923f, 0.636761844f, 0.635578334f,
    0.634393275f, 0.633206785f, 0.632018745f, 0.630829215f,
    0.629638255f, 0.628445745f, 0.627251804f, 0.626056373f,
    0.624859512f, 0.623661101f, 0.622461259f, 0.621259987f,
    0.620057225f, 0.618852973f, 0.617647290f, 0.616440177f,
    0.615231574f, 0.614021540f, 0.612810075f, 0.611597180f,
    0.610382795f, 0.609167039f, 0.607949793f, 0.606731117f,
    0.605511069f, 0.604289532f, 0.603066623f, 0.601842225f,
    0.600616455f, 0.599389315f, 0.598160684f, 0.596930683f,
    0.595699310f, 0.594466507f, 0.593232274f, 0.591996670f,
    0.590759695f, 0.589521289f, 0.588281572f, 0.587040365f,
    0.585797846f, 0.584553957f, 0.583308637f, 0.582062006f,
    0.580813944f, 0.579564571f, 0.578313768f, 0.577061653f,
    0.575808167f, 0.574553370f, 0.573297143f, 0.572039604f,
    0.570780754f, 0.569520533f, 0.568258941f, 0.566996038f,
    0.565731823f, 0.564466238f, 0.563199341f, 0.561931133f,
    0.560661554f, 0.559390724f, 0.558118522f, 0.556845009f,
    0.555570245f, 0.554294109f, 0.553016722f, 0.551737964f,
    0.550457954f, 0.549176633f, 0.547894061f, 0.546610177f,
    0.545324981f, 0.544038534f, 0.542750776f, 0.541461766f,
    0.540171444f, 0.538879931f, 0.537587047f, 0.536292970f,
    0.534997642f, 0.533701003f, 0.532403111f, 0.531104028f,
    0.529803634f, 0.528501987f, 0.527199149f, 0.525895000f,
    0.524589658f, 0.523283124f, 0.521975279f, 0.520666242f,
    0.519356012f, 0.518044531f, 0.516731799f, 0.515417874f,
    0.514102757f, 0.512786388f, 0.511468828f, 0.510150075f,
    0.508830130f, 0.507508993f, 0.506186664f, 0.504863083f,
    0.503538370f, 0.502212465f, 0.500885367f, 0.499557108f,
    0.498227656f, 0.496897042f, 0.495565265f, 0.494232297f,
    0.492898196f, 0.491562903f, 0.490226477f, 0.488888890f,
    0.487550169f, 0.486210287f, 0.484869242f, 0.483527064f,
    0.482183784f, 0.480839342f, 0.479493767f, 0.478147060f,
    0.476799220f, 0.475450277f, 0.474100202f, 0.472749025f,
    0.471396744f, 0.470043331f, 0.468688816f, 0.467333198f,
    0.465976506f, 0.464618683f, 0.463259786f, 0.461899787f,
    0.460538715f, 0.459176540f, 0.457813293f, 0.456448972f,
    0.455083579f, 0.453717113f, 0.452349573f, 0.450980991f,
    0.449611336f, 0.448240608f, 0.446868837f, 0.445496023f,
    0.444122136f, 0.442747235f, 0.441371262f, 0.439994276f,
    0.438616246f, 0.437237173f, 0.435857087f, 0.434475958f,
    0.433093816f, 0.431710660f, 0.430326492f, 0.428941280f,
    0.427555084f, 0.426167876f, 0.424779683f, 0.423390478f,
    0.422000259f, 0.420609087f, 0.419216901f, 0.417823702f,
    0.416429549f, 0.415034413f, 0.413638324f, 0.412241220f,
    0.410843164f, 0.409444153f, 0.408044159f, 0.406643212f,
    0.405241311f, 0.403838456f, 0.402434647f, 0.401029885f,
    0.399624199f, 0.398217559f, 0.396809995f, 0.395401478f,
    0.393992037f, 0.392581671f, 0.391170382f, 0.389758170f,
    0.388345033f, 0.386931002f, 0.385516047f, 0.384100199f,
    0.382683426f, 0.381265759f, 0.379847199f, 0.378427744f,
    0.377007425f, 0.375586182f, 0.374164075f, 0.372741073f,
    0.371317208f, 0.369892448f, 0.368466824f, 0.367040336f,
    0.365612984f, 0.364184797f, 0.362755716f, 0.361325800f,
    0.359895051f, 0.358463407f, 0.357030958f, 0.355597675f,
    0.354163527f, 0.352728546f, 0.351292759f, 0.349856138f,
    0.348418683f, 0.346980423f, 0.345541328f, 0.344101429f,
    0.342660725f, 0.341219217f, 0.339776874f, 0.338333756f,
    0.336889863f, 0.335445136f, 0.333999664f, 0.332553357f,
    0.331106305f, 0.329658449f, 0.328209847f, 0.326760441f,
    0.325310290f, 0.323859364f, 0.322407693f, 0.320955247f,
    0.319502026f, 0.318048090f, 0.316593379f, 0.315137923f,
    0.313681751f, 0.312224805f, 0.310767144f, 0.309308767f,
    0.307849646f, 0.306389809f, 0.304929227f, 0.303467959f,
    0.302005947f, 0.300543249f, 0.299079835f, 0.297615707f,
    0.296150893f, 0.294685364f, 0.293219149f, 0.291752249f,
    0.290284663f, 0.288816422f, 0.287347466f, 0.285877824f,
    0.284407526f, 0.282936573f, 0.281464934f, 0.279992640f,
    0.278519690f, 0.277046084f, 0.275571823f, 0.274096906f,
    0.272621363f, 0.271145165f, 0.269668311f, 0.268190861f,
    0.266712755f, 0.265234023f, 0.263754666f, 0.262274712f,
    0.260794103f, 0.259312928f, 0.257831097f, 0.256348670f,
    0.254865646f, 0.253382027f, 0.251897812f, 0.250413001f,
    0.248927608f, 0.247441620f, 0.245955050f, 0.244467899f,
    0.242980182f, 0.241491884f, 0.240003020f, 0.238513589f,
    0.237023607f, 0.235533059f, 0.234041959f, 0.232550308f,
    0.231058106f, 0.229565367f, 0.228072077f, 0.226578265f,
    0.225083917f, 0.223589033f, 0.222093627f, 0.220597684f,
    0.219101235f, 0.217604280f, 0.216106802f, 0.214608818f,
    0.213110313f, 0.211611331f, 0.210111842f, 0.208611846f,
    0.207111374f, 0.205610409f, 0.204108968f, 0.202607036f,
    0.201104641f, 0.199601755f, 0.198098406f, 0.196594596f,
    0.195090324f, 0.193585590f, 0.192080393f, 0.190574750f,
    0.189068660f, 0.187562123f, 0.186055154f, 0.184547737f,
    0.183039889f, 0.181531608f, 0.180022895f, 0.178513765f,
    0.177004218f, 0.175494254f, 0.173983872f, 0.172473088f,
    0.170961887f, 0.169450298f, 0.167938292f, 0.166425899f,
    0.164913118f, 0.163399950f, 0.161886394f, 0.160372451f,
    0.158858150f, 0.157343462f, 0.155828401f, 0.154312968f,
    0.152797192f, 0.151281044f, 0.149764538f, 0.148247674f,
    0.146730468f, 0.145212919f, 0.143695027f, 0.142176807f,
    0.140658244f, 0.139139339f, 0.137620121f, 0.136100575f,
    0.134580702f, 0.133060530f, 0.131540030f, 0.130019218f,
    0.128498107f, 0.126976699f, 0.125454977f, 0.123932973f,
    0.122410677f, 0.120888084f, 0.119365215f, 0.117842063f,
    0.116318628f, 0.114794925f, 0.113270953f, 0.111746714f,
    0.110222206f, 0.108697444f, 0.107172422f, 0.105647154f,
    0.104121633f, 0.102595866f, 0.101069860f, 0.099543616f,
    0.098017141f, 0.096490428f, 0.094963498f, 0.093436338f,
    0.091908954f, 0.090381362f, 0.088853553f, 0.087325536f,
    0.085797310f, 0.084268890f, 0.082740262f, 0.081211448f,
    0.079682440f, 0.078153245f, 0.076623864f, 0.075094298f,
    0.073564567f, 0.072034650f, 0.070504576f, 0.068974331f,
    0.067443922f, 0.065913349f, 0.064382628f, 0.062851757f,
    0.061320737f, 0.059789572f, 0.058258265f, 0.056726821f,
    0.055195246f, 0.053663537f, 0.052131705f, 0.050599750f,
    0.049067676f, 0.047535483f, 0.046003181f, 0.044470772f,
    0.042938258f, 0.041405641f, 0.039872926f, 0.038340122f,
    0.036807224f, 0.035274237f, 0.033741172f, 0.032208025f,
    0.030674804f, 0.029141508f, 0.027608145f, 0.026074719f,
    0.024541229f, 0.023007682f, 0.021474080f, 0.019940428f,
    0.018406730f, 0.016872987f, 0.015339206f, 0.0138053885f,
    0.012271538f, 0.010737659f, 0.009203754f, 0.007669829f,
    0.0061358847f,0.004601926f, 0.0030679568f,0.0015339801f,

    // negative sine
    0.000000000f,  -0.0015339801f,-0.0030679568f,-0.004601926f,
    -0.0061358847f,-0.007669829f, -0.009203754f, -0.010737659f,
    -0.012271538f, -0.0138053885f,-0.015339206f, -0.016872987f,
    -0.018406730f, -0.019940428f, -0.021474080f, -0.023007682f,
    -0.024541229f, -0.026074719f, -0.027608145f, -0.029141508f,
    -0.030674804f, -0.032208025f, -0.033741172f, -0.035274237f,
    -0.036807224f, -0.038340122f, -0.039872926f, -0.041405641f,
    -0.042938258f, -0.044470772f, -0.046003181f, -0.047535483f,
    -0.049067676f, -0.050599750f, -0.052131705f, -0.053663537f,
    -0.055195246f, -0.056726821f, -0.058258265f, -0.059789572f,
    -0.061320737f, -0.062851757f, -0.064382628f, -0.065913349f,
    -0.067443922f, -0.068974331f, -0.070504576f, -0.072034650f,
    -0.073564567f, -0.075094298f, -0.076623864f, -0.078153245f,
    -0.079682440f, -0.081211448f, -0.082740262f, -0.084268890f,
    -0.085797310f, -0.087325536f, -0.088853553f, -0.090381362f,
    -0.091908954f, -0.093436338f, -0.094963498f, -0.096490428f,
    -0.098017141f, -0.099543616f, -0.101069860f, -0.102595866f,
    -0.104121633f, -0.105647154f, -0.107172422f, -0.108697444f,
    -0.110222206f, -0.111746714f, -0.113270953f, -0.114794925f,
    -0.116318628f, -0.117842063f, -0.119365215f, -0.120888084f,
    -0.122410677f, -0.123932973f, -0.125454977f, -0.126976699f,
    -0.128498107f, -0.130019218f, -0.131540030f, -0.133060530f,
    -0.134580702f, -0.136100575f, -0.137620121f, -0.139139339f,
    -0.140658244f, -0.142176807f, -0.143695027f, -0.145212919f,
    -0.146730468f, -0.148247674f, -0.149764538f, -0.151281044f,
    -0.152797192f, -0.154312968f, -0.155828401f, -0.157343462f,
    -0.158858150f, -0.160372451f, -0.161886394f, -0.163399950f,
    -0.164913118f, -0.166425899f, -0.167938292f, -0.169450298f,
    -0.170961887f, -0.172473088f, -0.173983872f, -0.175494254f,
    -0.177004218f, -0.178513765f, -0.180022895f, -0.181531608f,
    -0.183039889f, -0.184547737f, -0.186055154f, -0.187562123f,
    -0.189068660f, -0.190574750f, -0.192080393f, -0.193585590f,
    -0.195090324f, -0.196594596f, -0.198098406f, -0.199601755f,
    -0.201104641f, -0.202607036f, -0.204108968f, -0.205610409f,
    -0.207111374f, -0.208611846f, -0.210111842f, -0.211611331f,
    -0.213110313f, -0.214608818f, -0.216106802f, -0.217604280f,
    -0.219101235f, -0.220597684f, -0.222093627f, -0.223589033f,
    -0.225083917f, -0.226578265f, -0.228072077f, -0.229565367f,
    -0.231058106f, -0.232550308f, -0.234041959f, -0.235533059f,
    -0.237023607f, -0.238513589f, -0.240003020f, -0.241491884f,
    -0.242980182f, -0.244467899f, -0.245955050f, -0.247441620f,
    -0.248927608f, -0.250413001f, -0.251897812f, -0.253382027f,
    -0.254865646f, -0.256348670f, -0.257831097f, -0.259312928f,
    -0.260794103f, -0.262274712f, -0.263754666f, -0.265234023f,
    -0.266712755f, -0.268190861f, -0.269668311f, -0.271145165f,
    -0.272621363f, -0.274096906f, -0.275571823f, -0.277046084f,
    -0.278519690f, -0.279992640f, -0.281464934f, -0.282936573f,
    -0.284407526f, -0.285877824f, -0.287347466f, -0.288816422f,
    -0.290284663f, -0.291752249f, -0.293219149f, -0.294685364f,
    -0.296150893f, -0.297615707f, -0.299079835f, -0.300543249f,
    -0.302005947f, -0.303467959f, -0.304929227f, -0.306389809f,
    -0.307849646f, -0.309308767f, -0.310767144f, -0.312224805f,
    -0.313681751f, -0.315137923f, -0.316593379f, -0.318048090f,
    -0.319502026f, -0.320955247f, -0.322407693f, -0.323859364f,
    -0.325310290f, -0.326760441f, -0.328209847f, -0.329658449f,
    -0.331106305f, -0.332553357f, -0.333999664f, -0.335445136f,
    -0.336889863f, -0.338333756f, -0.339776874f, -0.341219217f,
    -0.342660725f, -0.344101429f, -0.345541328f, -0.346980423f,
    -0.348418683f, -0.349856138f, -0.351292759f, -0.352728546f,
    -0.354163527f, -0.355597675f, -0.357030958f, -0.358463407f,
    -0.359895051f, -0.361325800f, -0.362755716f, -0.364184797f,
    -0.365612984f, -0.367040336f, -0.368466824f, -0.369892448f,
    -0.371317208f, -0.372741073f, -0.374164075f, -0.375586182f,
    -0.377007425f, -0.378427744f, -0.379847199f, -0.381265759f,
    -0.382683426f, -0.384100199f, -0.385516047f, -0.386931002f,
    -0.388345033f, -0.389758170f, -0.391170382f, -0.392581671f,
    -0.393992037f, -0.395401478f, -0.396809995f, -0.398217559f,
    -0.399624199f, -0.401029885f, -0.402434647f, -0.403838456f,
    -0.405241311f, -0.406643212f, -0.408044159f, -0.409444153f,
    -0.410843164f, -0.412241220f, -0.413638324f, -0.415034413f,
    -0.416429549f, -0.417823702f, -0.419216901f, -0.420609087f,
    -0.422000259f, -0.423390478f, -0.424779683f, -0.426167876f,
    -0.427555084f, -0.428941280f, -0.430326492f, -0.431710660f,
    -0.433093816f, -0.434475958f, -0.435857087f, -0.437237173f,
    -0.438616246f, -0.439994276f, -0.441371262f, -0.442747235f,
    -0.444122136f, -0.445496023f, -0.446868837f, -0.448240608f,
    -0.449611336f, -0.450980991f, -0.452349573f, -0.453717113f,
    -0.455083579f, -0.456448972f, -0.457813293f, -0.459176540f,
    -0.460538715f, -0.461899787f, -0.463259786f, -0.464618683f,
    -0.465976506f, -0.467333198f, -0.468688816f, -0.470043331f,
    -0.471396744f, -0.472749025f, -0.474100202f, -0.475450277f,
    -0.476799220f, -0.478147060f, -0.479493767f, -0.480839342f,
    -0.482183784f, -0.483527064f, -0.484869242f, -0.486210287f,
    -0.487550169f, -0.488888890f, -0.490226477f, -0.491562903f,
    -0.492898196f, -0.494232297f, -0.495565265f, -0.496897042f,
    -0.498227656f, -0.499557108f, -0.500885367f, -0.502212465f,
    -0.503538370f, -0.504863083f, -0.506186664f, -0.507508993f,
    -0.508830130f, -0.510150075f, -0.511468828f, -0.512786388f,
    -0.514102757f, -0.515417874f, -0.516731799f, -0.518044531f,
    -0.519356012f, -0.520666242f, -0.521975279f, -0.523283124f,
    -0.524589658f, -0.525895000f, -0.527199149f, -0.528501987f,
    -0.529803634f, -0.531104028f, -0.532403111f, -0.533701003f,
    -0.534997642f, -0.536292970f, -0.537587047f, -0.538879931f,
    -0.540171444f, -0.541461766f, -0.542750776f, -0.544038534f,
    -0.545324981f, -0.546610177f, -0.547894061f, -0.549176633f,
    -0.550457954f, -0.551737964f, -0.553016722f, -0.554294109f,
    -0.555570245f, -0.556845009f, -0.558118522f, -0.559390724f,
    -0.560661554f, -0.561931133f, -0.563199341f, -0.564466238f,
    -0.565731823f, -0.566996038f, -0.568258941f, -0.569520533f,
    -0.570780754f, -0.572039604f, -0.573297143f, -0.574553370f,
    -0.575808167f, -0.577061653f, -0.578313768f, -0.579564571f,
    -0.580813944f, -0.582062006f, -0.583308637f, -0.584553957f,
    -0.585797846f, -0.587040365f, -0.588281572f, -0.589521289f,
    -0.590759695f, -0.591996670f, -0.593232274f, -0.594466507f,
    -0.595699310f, -0.596930683f, -0.598160684f, -0.599389315f,
    -0.600616455f, -0.601842225f, -0.603066623f, -0.604289532f,
    -0.605511069f, -0.606731117f, -0.607949793f, -0.609167039f,
    -0.610382795f, -0.611597180f, -0.612810075f, -0.614021540f,
    -0.615231574f, -0.616440177f, -0.617647290f, -0.618852973f,
    -0.620057225f, -0.621259987f, -0.622461259f, -0.623661101f,
    -0.624859512f, -0.626056373f, -0.627251804f, -0.628445745f,
    -0.629638255f, -0.630829215f, -0.632018745f, -0.633206785f,
    -0.634393275f, -0.635578334f, -0.636761844f, -0.637943923f,
    -0.639124453f, -0.640303493f, -0.641481042f, -0.642657042f,
    -0.643831551f, -0.645004511f, -0.646176040f, -0.647345960f,
    -0.648514390f, -0.649681330f, -0.650846660f, -0.652010560f,
    -0.653172851f, -0.654333591f, -0.655492842f, -0.656650543f,
    -0.657806695f, -0.658961296f, -0.660114348f, -0.661265850f,
    -0.662415802f, -0.663564146f, -0.664710999f, -0.665856242f,
    -0.666999936f, -0.668142021f, -0.669282615f, -0.670421541f,
    -0.671558976f, -0.672694743f, -0.673829019f, -0.674961627f,
    -0.676092684f, -0.677222192f, -0.678350031f, -0.679476321f,
    -0.680601001f, -0.681724072f, -0.682845533f, -0.683965385f,
    -0.685083687f, -0.686200321f, -0.687315345f, -0.688428760f,
    -0.689540565f, -0.690650702f, -0.691759229f, -0.692866147f,
    -0.693971455f, -0.695075095f, -0.696177125f, -0.697277486f,
    -0.698376238f, -0.699473321f, -0.700568795f, -0.701662600f,
    -0.702754736f, -0.703845263f, -0.704934061f, -0.706021249f,
    -0.707106769f, -0.708190620f, -0.709272802f, -0.710353374f,
    -0.711432219f, -0.712509394f, -0.713584840f, -0.714658678f,
    -0.715730846f, -0.716801286f, -0.717870057f, -0.718937099f,
    -0.720002532f, -0.721066177f, -0.722128212f, -0.723188460f,
    -0.724247098f, -0.725303948f, -0.726359129f, -0.727412641f,
    -0.728464365f, -0.729514420f, -0.730562747f, -0.731609404f,
    -0.732654274f, -0.733697414f, -0.734738886f, -0.735778570f,
    -0.736816585f, -0.737852812f, -0.738887310f, -0.739920080f,
    -0.740951121f, -0.741980433f, -0.743007958f, -0.744033754f,
    -0.745057762f, -0.746080101f, -0.747100592f, -0.748119354f,
    -0.749136388f, -0.750151634f, -0.751165152f, -0.752176821f,
    -0.753186822f, -0.754194975f, -0.755201399f, -0.756205976f,
    -0.757208824f, -0.758209884f, -0.759209216f, -0.760206699f,
    -0.761202395f, -0.762196302f, -0.763188422f, -0.764178753f,
    -0.765167236f, -0.766153991f, -0.767138898f, -0.768122017f,
    -0.769103348f, -0.770082831f, -0.771060526f, -0.772036374f,
    -0.773010433f, -0.773982704f, -0.774953127f, -0.775921702f,
    -0.776888490f, -0.777853429f, -0.778816521f, -0.779777765f,
    -0.780737221f, -0.781694829f, -0.782650590f, -0.783604503f,
    -0.784556568f, -0.785506845f, -0.786455214f, -0.787401736f,
    -0.788346410f, -0.789289236f, -0.790230215f, -0.791169345f,
    -0.792106569f, -0.793041945f, -0.793975472f, -0.794907153f,
    -0.795836926f, -0.796764791f, -0.797690868f, -0.798614979f,
    -0.799537241f, -0.800457656f, -0.801376164f, -0.802292824f,
    -0.803207517f, -0.804120362f, -0.805031359f, -0.805940390f,
    -0.806847572f, -0.807752848f, -0.808656156f, -0.809557617f,
    -0.810457170f, -0.811354876f, -0.812250614f, -0.813144386f,
    -0.814036310f, -0.814926326f, -0.815814435f, -0.816700578f,
    -0.817584813f, -0.818467140f, -0.819347501f, -0.820225954f,
    -0.821102500f, -0.821977139f, -0.822849810f, -0.823720515f,
    -0.824589312f, -0.825456142f, -0.826321065f, -0.827184021f,
    -0.828045070f, -0.828904092f, -0.829761207f, -0.830616415f,
    -0.831469595f, -0.832320869f, -0.833170176f, -0.834017515f,
    -0.834862888f, -0.835706294f, -0.836547732f, -0.837387204f,
    -0.838224709f, -0.839060247f, -0.839893818f, -0.840725362f,
    -0.841554999f, -0.842382610f, -0.843208253f, -0.844031870f,
    -0.844853580f, -0.845673263f, -0.846490920f, -0.847306609f,
    -0.848120332f, -0.848932028f, -0.849741757f, -0.850549459f,
    -0.851355195f, -0.852158904f, -0.852960587f, -0.853760302f,
    -0.854557991f, -0.855353653f, -0.856147349f, -0.856938958f,
    -0.857728601f, -0.858516216f, -0.859301805f, -0.860085368f,
    -0.860866964f, -0.861646473f, -0.862423956f, -0.863199413f,
    -0.863972843f, -0.864744246f, -0.865513623f, -0.866280973f,
    -0.867046237f, -0.867809474f, -0.868570685f, -0.869329870f,
    -0.870086968f, -0.870842040f, -0.871595085f, -0.872346044f,
    -0.873094976f, -0.873841822f, -0.874586642f, -0.875329375f,
    -0.876070082f, -0.876808703f, -0.877545297f, -0.878279805f,
    -0.879012227f, -0.879742622f, -0.880470872f, -0.881197095f,
    -0.881921291f, -0.882643342f, -0.883363366f, -0.884081244f,
    -0.884797096f, -0.885510862f, -0.886222541f, -0.886932135f,
    -0.887639642f, -0.888345063f, -0.889048338f, -0.889749587f,
    -0.890448749f, -0.891145766f, -0.891840696f, -0.892533541f,
    -0.893224299f, -0.893912971f, -0.894599497f, -0.895283937f,
    -0.895966232f, -0.896646500f, -0.897324562f, -0.898000598f,
    -0.898674488f, -0.899346232f, -0.900015891f, -0.900683403f,
    -0.901348829f, -0.902012169f, -0.902673304f, -0.903332353f,
    -0.903989315f, -0.904644072f, -0.905296743f, -0.905947268f,
    -0.906595707f, -0.907242000f, -0.907886088f, -0.908528090f,
    -0.909168005f, -0.909805715f, -0.910441279f, -0.911074758f,
    -0.911706030f, -0.912335157f, -0.912962198f, -0.913587034f,
    -0.914209783f, -0.914830327f, -0.915448725f, -0.916064978f,
    -0.916679084f, -0.917290986f, -0.917900801f, -0.918508410f,
    -0.919113874f, -0.919717133f, -0.920318305f, -0.920917213f,
    -0.921514034f, -0.922108650f, -0.922701120f, -0.923291445f,
    -0.923879504f, -0.924465477f, -0.925049245f, -0.925630808f,
    -0.926210225f, -0.926787496f, -0.927362502f, -0.927935421f,
    -0.928506076f, -0.929074585f, -0.929640889f, -0.930205047f,
    -0.930766940f, -0.931326687f, -0.931884289f, -0.932439625f,
    -0.932992816f, -0.933543801f, -0.934092522f, -0.934639156f,
    -0.935183525f, -0.935725689f, -0.936265647f, -0.936803460f,
    -0.937339008f, -0.937872350f, -0.938403547f, -0.938932478f,
    -0.939459205f, -0.939983726f, -0.940506041f, -0.941026151f,
    -0.941544056f, -0.942059755f, -0.942573190f, -0.943084419f,
    -0.943593442f, -0.944100261f, -0.944604814f, -0.945107222f,
    -0.945607305f, -0.946105242f, -0.946600914f, -0.947094381f,
    -0.947585583f, -0.948074579f, -0.948561370f, -0.949045897f,
    -0.949528158f, -0.950008273f, -0.950486064f, -0.950961649f,
    -0.951435030f, -0.951906145f, -0.952374995f, -0.952841640f,
    -0.953306019f, -0.953768194f, -0.954228103f, -0.954685748f,
    -0.955141187f, -0.955594361f, -0.956045270f, -0.956493914f,
    -0.956940353f, -0.957384527f, -0.957826436f, -0.958266079f,
    -0.958703458f, -0.959138632f, -0.959571540f, -0.960002124f,
    -0.960430503f, -0.960856616f, -0.961280465f, -0.961702049f,
    -0.962121427f, -0.962538481f, -0.962953269f, -0.963365793f,
    -0.963776052f, -0.964184046f, -0.964589775f, -0.964993238f,
    -0.965394437f, -0.965793371f, -0.966189981f, -0.966584384f,
    -0.966976464f, -0.967366278f, -0.967753828f, -0.968139112f,
    -0.968522072f, -0.968902826f, -0.969281256f, -0.969657362f,
    -0.970031261f, -0.970402837f, -0.970772147f, -0.971139133f,
    -0.971503913f, -0.971866310f, -0.972226501f, -0.972584367f,
    -0.972939968f, -0.973293245f, -0.973644257f, -0.973992944f,
    -0.974339366f, -0.974683523f, -0.975025356f, -0.975364864f,
    -0.975702107f, -0.976037085f, -0.976369739f, -0.976700068f,
    -0.977028131f, -0.977353871f, -0.977677345f, -0.977998495f,
    -0.978317380f, -0.978633940f, -0.978948176f, -0.979260147f,
    -0.979569793f, -0.979877114f, -0.980182111f, -0.980484843f,
    -0.980785251f, -0.981083393f, -0.981379211f, -0.981672704f,
    -0.981963873f, -0.982252717f, -0.982539296f, -0.982823551f,
    -0.983105481f, -0.983385086f, -0.983662426f, -0.983937442f,
    -0.984210074f, -0.984480441f, -0.984748483f, -0.985014260f,
    -0.985277653f, -0.985538721f, -0.985797524f, -0.986053944f,
    -0.986308098f, -0.986559927f, -0.986809373f, -0.987056553f,
    -0.987301409f, -0.987543941f, -0.987784147f, -0.988022029f,
    -0.988257587f, -0.988490820f, -0.988721669f, -0.988950253f,
    -0.989176512f, -0.989400446f, -0.989621997f, -0.989841282f,
    -0.990058184f, -0.990272820f, -0.990485072f, -0.990695000f,
    -0.990902662f, -0.991107941f, -0.991310835f, -0.991511464f,
    -0.991709769f, -0.991905689f, -0.992099285f, -0.992290616f,
    -0.992479563f, -0.992666125f, -0.992850423f, -0.993032336f,
    -0.993211925f, -0.993389189f, -0.993564129f, -0.993736744f,
    -0.993906975f, -0.994074881f, -0.994240463f, -0.994403660f,
    -0.994564593f, -0.994723141f, -0.994879305f, -0.995033205f,
    -0.995184720f, -0.995333910f, -0.995480776f, -0.995625257f,
    -0.995767415f, -0.995907247f, -0.996044695f, -0.996179819f,
    -0.996312618f, -0.996443033f, -0.996571124f, -0.996696889f,
    -0.996820271f, -0.996941328f, -0.997060061f, -0.997176409f,
    -0.997290432f, -0.997402132f, -0.997511446f, -0.997618437f,
    -0.997723043f, -0.997825325f, -0.997925282f, -0.998022854f,
    -0.998118103f, -0.998211026f, -0.998301566f, -0.998389721f,
    -0.998475552f, -0.998559058f, -0.998640239f, -0.998719037f,
    -0.998795450f, -0.998869538f, -0.998941302f, -0.999010682f,
    -0.999077737f, -0.999142408f, -0.999204755f, -0.999264777f,
    -0.999322355f, -0.999377668f, -0.999430597f, -0.999481201f,
    -0.999529421f, -0.999575317f, -0.999618828f, -0.999660015f,
    -0.999698818f, -0.999735296f, -0.999769390f, -0.999801159f,
    -0.999830604f, -0.999857664f, -0.999882340f, -0.999904692f,
    -0.999924719f, -0.999942362f, -0.999957621f, -0.999970615f,
    -0.999981165f, -0.999989390f, -0.999995291f, -0.999998808f,

    // negative cosine
    -1.000000000f, -0.999998808f, -0.999995291f, -0.999989390f,
    -0.999981165f, -0.999970615f, -0.999957621f, -0.999942362f,
    -0.999924719f, -0.999904692f, -0.999882340f, -0.999857664f,
    -0.999830604f, -0.999801159f, -0.999769390f, -0.999735296f,
    -0.999698818f, -0.999660015f, -0.999618828f, -0.999575317f,
    -0.999529421f, -0.999481201f, -0.999430597f, -0.999377668f,
    -0.999322355f, -0.999264777f, -0.999204755f, -0.999142408f,
    -0.999077737f, -0.999010682f, -0.998941302f, -0.998869538f,
    -0.998795450f, -0.998719037f, -0.998640239f, -0.998559058f,
    -0.998475552f, -0.998389721f, -0.998301566f, -0.998211026f,
    -0.998118103f, -0.998022854f, -0.997925282f, -0.997825325f,
    -0.997723043f, -0.997618437f, -0.997511446f, -0.997402132f,
    -0.997290432f, -0.997176409f, -0.997060061f, -0.996941328f,
    -0.996820271f, -0.996696889f, -0.996571124f, -0.996443033f,
    -0.996312618f, -0.996179819f, -0.996044695f, -0.995907247f,
    -0.995767415f, -0.995625257f, -0.995480776f, -0.995333910f,
    -0.995184720f, -0.995033205f, -0.994879305f, -0.994723141f,
    -0.994564593f, -0.994403660f, -0.994240463f, -0.994074881f,
    -0.993906975f, -0.993736744f, -0.993564129f, -0.993389189f,
    -0.993211925f, -0.993032336f, -0.992850423f, -0.992666125f,
    -0.992479563f, -0.992290616f, -0.992099285f, -0.991905689f,
    -0.991709769f, -0.991511464f, -0.991310835f, -0.991107941f,
    -0.990902662f, -0.990695000f, -0.990485072f, -0.990272820f,
    -0.990058184f, -0.989841282f, -0.989621997f, -0.989400446f,
    -0.989176512f, -0.988950253f, -0.988721669f, -0.988490820f,
    -0.988257587f, -0.988022029f, -0.987784147f, -0.987543941f,
    -0.987301409f, -0.987056553f, -0.986809373f, -0.986559927f,
    -0.986308098f, -0.986053944f, -0.985797524f, -0.985538721f,
    -0.985277653f, -0.985014260f, -0.984748483f, -0.984480441f,
    -0.984210074f, -0.983937442f, -0.983662426f, -0.983385086f,
    -0.983105481f, -0.982823551f, -0.982539296f, -0.982252717f,
    -0.981963873f, -0.981672704f, -0.981379211f, -0.981083393f,
    -0.980785251f, -0.980484843f, -0.980182111f, -0.979877114f,
    -0.979569793f, -0.979260147f, -0.978948176f, -0.978633940f,
    -0.978317380f, -0.977998495f, -0.977677345f, -0.977353871f,
    -0.977028131f, -0.976700068f, -0.976369739f, -0.976037085f,
    -0.975702107f, -0.975364864f, -0.975025356f, -0.974683523f,
    -0.974339366f, -0.973992944f, -0.973644257f, -0.973293245f,
    -0.972939968f, -0.972584367f, -0.972226501f, -0.971866310f,
    -0.971503913f, -0.971139133f, -0.970772147f, -0.970402837f,
    -0.970031261f, -0.969657362f, -0.969281256f, -0.968902826f,
    -0.968522072f, -0.968139112f, -0.967753828f, -0.967366278f,
    -0.966976464f, -0.966584384f, -0.966189981f, -0.965793371f,
    -0.965394437f, -0.964993238f, -0.964589775f, -0.964184046f,
    -0.963776052f, -0.963365793f, -0.962953269f, -0.962538481f,
    -0.962121427f, -0.961702049f, -0.961280465f, -0.960856616f,
    -0.960430503f, -0.960002124f, -0.959571540f, -0.959138632f,
    -0.958703458f, -0.958266079f, -0.957826436f, -0.957384527f,
    -0.956940353f, -0.956493914f, -0.956045270f, -0.955594361f,
    -0.955141187f, -0.954685748f, -0.954228103f, -0.953768194f,
    -0.953306019f, -0.952841640f, -0.952374995f, -0.951906145f,
    -0.951435030f, -0.950961649f, -0.950486064f, -0.950008273f,
    -0.949528158f, -0.949045897f, -0.948561370f, -0.948074579f,
    -0.947585583f, -0.947094381f, -0.946600914f, -0.946105242f,
    -0.945607305f, -0.945107222f, -0.944604814f, -0.944100261f,
    -0.943593442f, -0.943084419f, -0.942573190f, -0.942059755f,
    -0.941544056f, -0.941026151f, -0.940506041f, -0.939983726f,
    -0.939459205f, -0.938932478f, -0.938403547f, -0.937872350f,
    -0.937339008f, -0.936803460f, -0.936265647f, -0.935725689f,
    -0.935183525f, -0.934639156f, -0.934092522f, -0.933543801f,
    -0.932992816f, -0.932439625f, -0.931884289f, -0.931326687f,
    -0.930766940f, -0.930205047f, -0.929640889f, -0.929074585f,
    -0.928506076f, -0.927935421f, -0.927362502f, -0.926787496f,
    -0.926210225f, -0.925630808f, -0.925049245f, -0.924465477f,
    -0.923879504f, -0.923291445f, -0.922701120f, -0.922108650f,
    -0.921514034f, -0.920917213f, -0.920318305f, -0.919717133f,
    -0.919113874f, -0.918508410f, -0.917900801f, -0.917290986f,
    -0.916679084f, -0.916064978f, -0.915448725f, -0.914830327f,
    -0.914209783f, -0.913587034f, -0.912962198f, -0.912335157f,
    -0.911706030f, -0.911074758f, -0.910441279f, -0.909805715f,
    -0.909168005f, -0.908528090f, -0.907886088f, -0.907242000f,
    -0.906595707f, -0.905947268f, -0.905296743f, -0.904644072f,
    -0.903989315f, -0.903332353f, -0.902673304f, -0.902012169f,
    -0.901348829f, -0.900683403f, -0.900015891f, -0.899346232f,
    -0.898674488f, -0.898000598f, -0.897324562f, -0.896646500f,
    -0.895966232f, -0.895283937f, -0.894599497f, -0.893912971f,
    -0.893224299f, -0.892533541f, -0.891840696f, -0.891145766f,
    -0.890448749f, -0.889749587f, -0.889048338f, -0.888345063f,
    -0.887639642f, -0.886932135f, -0.886222541f, -0.885510862f,
    -0.884797096f, -0.884081244f, -0.883363366f, -0.882643342f,
    -0.881921291f, -0.881197095f, -0.880470872f, -0.879742622f,
    -0.879012227f, -0.878279805f, -0.877545297f, -0.876808703f,
    -0.876070082f, -0.875329375f, -0.874586642f, -0.873841822f,
    -0.873094976f, -0.872346044f, -0.871595085f, -0.870842040f,
    -0.870086968f, -0.869329870f, -0.868570685f, -0.867809474f,
    -0.867046237f, -0.866280973f, -0.865513623f, -0.864744246f,
    -0.863972843f, -0.863199413f, -0.862423956f, -0.861646473f,
    -0.860866964f, -0.860085368f, -0.859301805f, -0.858516216f,
    -0.857728601f, -0.856938958f, -0.856147349f, -0.855353653f,
    -0.854557991f, -0.853760302f, -0.852960587f, -0.852158904f,
    -0.851355195f, -0.850549459f, -0.849741757f, -0.848932028f,
    -0.848120332f, -0.847306609f, -0.846490920f, -0.845673263f,
    -0.844853580f, -0.844031870f, -0.843208253f, -0.842382610f,
    -0.841554999f, -0.840725362f, -0.839893818f, -0.839060247f,
    -0.838224709f, -0.837387204f, -0.836547732f, -0.835706294f,
    -0.834862888f, -0.834017515f, -0.833170176f, -0.832320869f,
    -0.831469595f, -0.830616415f, -0.829761207f, -0.828904092f,
    -0.828045070f, -0.827184021f, -0.826321065f, -0.825456142f,
    -0.824589312f, -0.823720515f, -0.822849810f, -0.821977139f,
    -0.821102500f, -0.820225954f, -0.819347501f, -0.818467140f,
    -0.817584813f, -0.816700578f, -0.815814435f, -0.814926326f,
    -0.814036310f, -0.813144386f, -0.812250614f, -0.811354876f,
    -0.810457170f, -0.809557617f, -0.808656156f, -0.807752848f,
    -0.806847572f, -0.805940390f, -0.805031359f, -0.804120362f,
    -0.803207517f, -0.802292824f, -0.801376164f, -0.800457656f,
    -0.799537241f, -0.798614979f, -0.797690868f, -0.796764791f,
    -0.795836926f, -0.794907153f, -0.793975472f, -0.793041945f,
    -0.792106569f, -0.791169345f, -0.790230215f, -0.789289236f,
    -0.788346410f, -0.787401736f, -0.786455214f, -0.785506845f,
    -0.784556568f, -0.783604503f, -0.782650590f, -0.781694829f,
    -0.780737221f, -0.779777765f, -0.778816521f, -0.777853429f,
    -0.776888490f, -0.775921702f, -0.774953127f, -0.773982704f,
    -0.773010433f, -0.772036374f, -0.771060526f, -0.770082831f,
    -0.769103348f, -0.768122017f, -0.767138898f, -0.766153991f,
    -0.765167236f, -0.764178753f, -0.763188422f, -0.762196302f,
    -0.761202395f, -0.760206699f, -0.759209216f, -0.758209884f,
    -0.757208824f, -0.756205976f, -0.755201399f, -0.754194975f,
    -0.753186822f, -0.752176821f, -0.751165152f, -0.750151634f,
    -0.749136388f, -0.748119354f, -0.747100592f, -0.746080101f,
    -0.745057762f, -0.744033754f, -0.743007958f, -0.741980433f,
    -0.740951121f, -0.739920080f, -0.738887310f, -0.737852812f,
    -0.736816585f, -0.735778570f, -0.734738886f, -0.733697414f,
    -0.732654274f, -0.731609404f, -0.730562747f, -0.729514420f,
    -0.728464365f, -0.727412641f, -0.726359129f, -0.725303948f,
    -0.724247098f, -0.723188460f, -0.722128212f, -0.721066177f,
    -0.720002532f, -0.718937099f, -0.717870057f, -0.716801286f,
    -0.715730846f, -0.714658678f, -0.713584840f, -0.712509394f,
    -0.711432219f, -0.710353374f, -0.709272802f, -0.708190620f,
    -0.707106769f, -0.706021249f, -0.704934061f, -0.703845263f,
    -0.702754736f, -0.701662600f, -0.700568795f, -0.699473321f,
    -0.698376238f, -0.697277486f, -0.696177125f, -0.695075095f,
    -0.693971455f, -0.692866147f, -0.691759229f, -0.690650702f,
    -0.689540565f, -0.688428760f, -0.687315345f, -0.686200321f,
    -0.685083687f, -0.683965385f, -0.682845533f, -0.681724072f,
    -0.680601001f, -0.679476321f, -0.678350031f, -0.677222192f,
    -0.676092684f, -0.674961627f, -0.673829019f, -0.672694743f,
    -0.671558976f, -0.670421541f, -0.669282615f, -0.668142021f,
    -0.666999936f, -0.665856242f, -0.664710999f, -0.663564146f,
    -0.662415802f, -0.661265850f, -0.660114348f, -0.658961296f,
    -0.657806695f, -0.656650543f, -0.655492842f, -0.654333591f,
    -0.653172851f, -0.652010560f, -0.650846660f, -0.649681330f,
    -0.648514390f, -0.647345960f, -0.646176040f, -0.645004511f,
    -0.643831551f, -0.642657042f, -0.641481042f, -0.640303493f,
    -0.639124453f, -0.637943923f, -0.636761844f, -0.635578334f,
    -0.634393275f, -0.633206785f, -0.632018745f, -0.630829215f,
    -0.629638255f, -0.628445745f, -0.627251804f, -0.626056373f,
    -0.624859512f, -0.623661101f, -0.622461259f, -0.621259987f,
    -0.620057225f, -0.618852973f, -0.617647290f, -0.616440177f,
    -0.615231574f, -0.614021540f, -0.612810075f, -0.611597180f,
    -0.610382795f, -0.609167039f, -0.607949793f, -0.606731117f,
    -0.605511069f, -0.604289532f, -0.603066623f, -0.601842225f,
    -0.600616455f, -0.599389315f, -0.598160684f, -0.596930683f,
    -0.595699310f, -0.594466507f, -0.593232274f, -0.591996670f,
    -0.590759695f, -0.589521289f, -0.588281572f, -0.587040365f,
    -0.585797846f, -0.584553957f, -0.583308637f, -0.582062006f,
    -0.580813944f, -0.579564571f, -0.578313768f, -0.577061653f,
    -0.575808167f, -0.574553370f, -0.573297143f, -0.572039604f,
    -0.570780754f, -0.569520533f, -0.568258941f, -0.566996038f,
    -0.565731823f, -0.564466238f, -0.563199341f, -0.561931133f,
    -0.560661554f, -0.559390724f, -0.558118522f, -0.556845009f,
    -0.555570245f, -0.554294109f, -0.553016722f, -0.551737964f,
    -0.550457954f, -0.549176633f, -0.547894061f, -0.546610177f,
    -0.545324981f, -0.544038534f, -0.542750776f, -0.541461766f,
    -0.540171444f, -0.538879931f, -0.537587047f, -0.536292970f,
    -0.534997642f, -0.533701003f, -0.532403111f, -0.531104028f,
    -0.529803634f, -0.528501987f, -0.527199149f, -0.525895000f,
    -0.524589658f, -0.523283124f, -0.521975279f, -0.520666242f,
    -0.519356012f, -0.518044531f, -0.516731799f, -0.515417874f,
    -0.514102757f, -0.512786388f, -0.511468828f, -0.510150075f,
    -0.508830130f, -0.507508993f, -0.506186664f, -0.504863083f,
    -0.503538370f, -0.502212465f, -0.500885367f, -0.499557108f,
    -0.498227656f, -0.496897042f, -0.495565265f, -0.494232297f,
    -0.492898196f, -0.491562903f, -0.490226477f, -0.488888890f,
    -0.487550169f, -0.486210287f, -0.484869242f, -0.483527064f,
    -0.482183784f, -0.480839342f, -0.479493767f, -0.478147060f,
    -0.476799220f, -0.475450277f, -0.474100202f, -0.472749025f,
    -0.471396744f, -0.470043331f, -0.468688816f, -0.467333198f,
    -0.465976506f, -0.464618683f, -0.463259786f, -0.461899787f,
    -0.460538715f, -0.459176540f, -0.457813293f, -0.456448972f,
    -0.455083579f, -0.453717113f, -0.452349573f, -0.450980991f,
    -0.449611336f, -0.448240608f, -0.446868837f, -0.445496023f,
    -0.444122136f, -0.442747235f, -0.441371262f, -0.439994276f,
    -0.438616246f, -0.437237173f, -0.435857087f, -0.434475958f,
    -0.433093816f, -0.431710660f, -0.430326492f, -0.428941280f,
    -0.427555084f, -0.426167876f, -0.424779683f, -0.423390478f,
    -0.422000259f, -0.420609087f, -0.419216901f, -0.417823702f,
    -0.416429549f, -0.415034413f, -0.413638324f, -0.412241220f,
    -0.410843164f, -0.409444153f, -0.408044159f, -0.406643212f,
    -0.405241311f, -0.403838456f, -0.402434647f, -0.401029885f,
    -0.399624199f, -0.398217559f, -0.396809995f, -0.395401478f,
    -0.393992037f, -0.392581671f, -0.391170382f, -0.389758170f,
    -0.388345033f, -0.386931002f, -0.385516047f, -0.384100199f,
    -0.382683426f, -0.381265759f, -0.379847199f, -0.378427744f,
    -0.377007425f, -0.375586182f, -0.374164075f, -0.372741073f,
    -0.371317208f, -0.369892448f, -0.368466824f, -0.367040336f,
    -0.365612984f, -0.364184797f, -0.362755716f, -0.361325800f,
    -0.359895051f, -0.358463407f, -0.357030958f, -0.355597675f,
    -0.354163527f, -0.352728546f, -0.351292759f, -0.349856138f,
    -0.348418683f, -0.346980423f, -0.345541328f, -0.344101429f,
    -0.342660725f, -0.341219217f, -0.339776874f, -0.338333756f,
    -0.336889863f, -0.335445136f, -0.333999664f, -0.332553357f,
    -0.331106305f, -0.329658449f, -0.328209847f, -0.326760441f,
    -0.325310290f, -0.323859364f, -0.322407693f, -0.320955247f,
    -0.319502026f, -0.318048090f, -0.316593379f, -0.315137923f,
    -0.313681751f, -0.312224805f, -0.310767144f, -0.309308767f,
    -0.307849646f, -0.306389809f, -0.304929227f, -0.303467959f,
    -0.302005947f, -0.300543249f, -0.299079835f, -0.297615707f,
    -0.296150893f, -0.294685364f, -0.293219149f, -0.291752249f,
    -0.290284663f, -0.288816422f, -0.287347466f, -0.285877824f,
    -0.284407526f, -0.282936573f, -0.281464934f, -0.279992640f,
    -0.278519690f, -0.277046084f, -0.275571823f, -0.274096906f,
    -0.272621363f, -0.271145165f, -0.269668311f, -0.268190861f,
    -0.266712755f, -0.265234023f, -0.263754666f, -0.262274712f,
    -0.260794103f, -0.259312928f, -0.257831097f, -0.256348670f,
    -0.254865646f, -0.253382027f, -0.251897812f, -0.250413001f,
    -0.248927608f, -0.247441620f, -0.245955050f, -0.244467899f,
    -0.242980182f, -0.241491884f, -0.240003020f, -0.238513589f,
    -0.237023607f, -0.235533059f, -0.234041959f, -0.232550308f,
    -0.231058106f, -0.229565367f, -0.228072077f, -0.226578265f,
    -0.225083917f, -0.223589033f, -0.222093627f, -0.220597684f,
    -0.219101235f, -0.217604280f, -0.216106802f, -0.214608818f,
    -0.213110313f, -0.211611331f, -0.210111842f, -0.208611846f,
    -0.207111374f, -0.205610409f, -0.204108968f, -0.202607036f,
    -0.201104641f, -0.199601755f, -0.198098406f, -0.196594596f,
    -0.195090324f, -0.193585590f, -0.192080393f, -0.190574750f,
    -0.189068660f, -0.187562123f, -0.186055154f, -0.184547737f,
    -0.183039889f, -0.181531608f, -0.180022895f, -0.178513765f,
    -0.177004218f, -0.175494254f, -0.173983872f, -0.172473088f,
    -0.170961887f, -0.169450298f, -0.167938292f, -0.166425899f,
    -0.164913118f, -0.163399950f, -0.161886394f, -0.160372451f,
    -0.158858150f, -0.157343462f, -0.155828401f, -0.154312968f,
    -0.152797192f, -0.151281044f, -0.149764538f, -0.148247674f,
    -0.146730468f, -0.145212919f, -0.143695027f, -0.142176807f,
    -0.140658244f, -0.139139339f, -0.137620121f, -0.136100575f,
    -0.134580702f, -0.133060530f, -0.131540030f, -0.130019218f,
    -0.128498107f, -0.126976699f, -0.125454977f, -0.123932973f,
    -0.122410677f, -0.120888084f, -0.119365215f, -0.117842063f,
    -0.116318628f, -0.114794925f, -0.113270953f, -0.111746714f,
    -0.110222206f, -0.108697444f, -0.107172422f, -0.105647154f,
    -0.104121633f, -0.102595866f, -0.101069860f, -0.099543616f,
    -0.098017141f, -0.096490428f, -0.094963498f, -0.093436338f,
    -0.091908954f, -0.090381362f, -0.088853553f, -0.087325536f,
    -0.085797310f, -0.084268890f, -0.082740262f, -0.081211448f,
    -0.079682440f, -0.078153245f, -0.076623864f, -0.075094298f,
    -0.073564567f, -0.072034650f, -0.070504576f, -0.068974331f,
    -0.067443922f, -0.065913349f, -0.064382628f, -0.062851757f,
    -0.061320737f, -0.059789572f, -0.058258265f, -0.056726821f,
    -0.055195246f, -0.053663537f, -0.052131705f, -0.050599750f,
    -0.049067676f, -0.047535483f, -0.046003181f, -0.044470772f,
    -0.042938258f, -0.041405641f, -0.039872926f, -0.038340122f,
    -0.036807224f, -0.035274237f, -0.033741172f, -0.032208025f,
    -0.030674804f, -0.029141508f, -0.027608145f, -0.026074719f,
    -0.024541229f, -0.023007682f, -0.021474080f, -0.019940428f,
    -0.018406730f, -0.016872987f, -0.015339206f, -0.0138053885f,
    -0.012271538f, -0.010737659f, -0.009203754f, -0.007669829f,
    -0.0061358847f,-0.004601926f, -0.0030679568f,-0.0015339801f,

    // sine
    0.000000000f, 0.0015339801f,0.0030679568f,0.004601926f,
    0.0061358847f,0.007669829f, 0.009203754f, 0.010737659f,
    0.012271538f, 0.0138053885f,0.015339206f, 0.016872987f,
    0.018406730f, 0.019940428f, 0.021474080f, 0.023007682f,
    0.024541229f, 0.026074719f, 0.027608145f, 0.029141508f,
    0.030674804f, 0.032208025f, 0.033741172f, 0.035274237f,
    0.036807224f, 0.038340122f, 0.039872926f, 0.041405641f,
    0.042938258f, 0.044470772f, 0.046003181f, 0.047535483f,
    0.049067676f, 0.050599750f, 0.052131705f, 0.053663537f,
    0.055195246f, 0.056726821f, 0.058258265f, 0.059789572f,
    0.061320737f, 0.062851757f, 0.064382628f, 0.065913349f,
    0.067443922f, 0.068974331f, 0.070504576f, 0.072034650f,
    0.073564567f, 0.075094298f, 0.076623864f, 0.078153245f,
    0.079682440f, 0.081211448f, 0.082740262f, 0.084268890f,
    0.085797310f, 0.087325536f, 0.088853553f, 0.090381362f,
    0.091908954f, 0.093436338f, 0.094963498f, 0.096490428f,
    0.098017141f, 0.099543616f, 0.101069860f, 0.102595866f,
    0.104121633f, 0.105647154f, 0.107172422f, 0.108697444f,
    0.110222206f, 0.111746714f, 0.113270953f, 0.114794925f,
    0.116318628f, 0.117842063f, 0.119365215f, 0.120888084f,
    0.122410677f, 0.123932973f, 0.125454977f, 0.126976699f,
    0.128498107f, 0.130019218f, 0.131540030f, 0.133060530f,
    0.134580702f, 0.136100575f, 0.137620121f, 0.139139339f,
    0.140658244f, 0.142176807f, 0.143695027f, 0.145212919f,
    0.146730468f, 0.148247674f, 0.149764538f, 0.151281044f,
    0.152797192f, 0.154312968f, 0.155828401f, 0.157343462f,
    0.158858150f, 0.160372451f, 0.161886394f, 0.163399950f,
    0.164913118f, 0.166425899f, 0.167938292f, 0.169450298f,
    0.170961887f, 0.172473088f, 0.173983872f, 0.175494254f,
    0.177004218f, 0.178513765f, 0.180022895f, 0.181531608f,
    0.183039889f, 0.184547737f, 0.186055154f, 0.187562123f,
    0.189068660f, 0.190574750f, 0.192080393f, 0.193585590f,
    0.195090324f, 0.196594596f, 0.198098406f, 0.199601755f,
    0.201104641f, 0.202607036f, 0.204108968f, 0.205610409f,
    0.207111374f, 0.208611846f, 0.210111842f, 0.211611331f,
    0.213110313f, 0.214608818f, 0.216106802f, 0.217604280f,
    0.219101235f, 0.220597684f, 0.222093627f, 0.223589033f,
    0.225083917f, 0.226578265f, 0.228072077f, 0.229565367f,
    0.231058106f, 0.232550308f, 0.234041959f, 0.235533059f,
    0.237023607f, 0.238513589f, 0.240003020f, 0.241491884f,
    0.242980182f, 0.244467899f, 0.245955050f, 0.247441620f,
    0.248927608f, 0.250413001f, 0.251897812f, 0.253382027f,
    0.254865646f, 0.256348670f, 0.257831097f, 0.259312928f,
    0.260794103f, 0.262274712f, 0.263754666f, 0.265234023f,
    0.266712755f, 0.268190861f, 0.269668311f, 0.271145165f,
    0.272621363f, 0.274096906f, 0.275571823f, 0.277046084f,
    0.278519690f, 0.279992640f, 0.281464934f, 0.282936573f,
    0.284407526f, 0.285877824f, 0.287347466f, 0.288816422f,
    0.290284663f, 0.291752249f, 0.293219149f, 0.294685364f,
    0.296150893f, 0.297615707f, 0.299079835f, 0.300543249f,
    0.302005947f, 0.303467959f, 0.304929227f, 0.306389809f,
    0.307849646f, 0.309308767f, 0.310767144f, 0.312224805f,
    0.313681751f, 0.315137923f, 0.316593379f, 0.318048090f,
    0.319502026f, 0.320955247f, 0.322407693f, 0.323859364f,
    0.325310290f, 0.326760441f, 0.328209847f, 0.329658449f,
    0.331106305f, 0.332553357f, 0.333999664f, 0.335445136f,
    0.336889863f, 0.338333756f, 0.339776874f, 0.341219217f,
    0.342660725f, 0.344101429f, 0.345541328f, 0.346980423f,
    0.348418683f, 0.349856138f, 0.351292759f, 0.352728546f,
    0.354163527f, 0.355597675f, 0.357030958f, 0.358463407f,
    0.359895051f, 0.361325800f, 0.362755716f, 0.364184797f,
    0.365612984f, 0.367040336f, 0.368466824f, 0.369892448f,
    0.371317208f, 0.372741073f, 0.374164075f, 0.375586182f,
    0.377007425f, 0.378427744f, 0.379847199f, 0.381265759f,
    0.382683426f, 0.384100199f, 0.385516047f, 0.386931002f,
    0.388345033f, 0.389758170f, 0.391170382f, 0.392581671f,
    0.393992037f, 0.395401478f, 0.396809995f, 0.398217559f,
    0.399624199f, 0.401029885f, 0.402434647f, 0.403838456f,
    0.405241311f, 0.406643212f, 0.408044159f, 0.409444153f,
    0.410843164f, 0.412241220f, 0.413638324f, 0.415034413f,
    0.416429549f, 0.417823702f, 0.419216901f, 0.420609087f,
    0.422000259f, 0.423390478f, 0.424779683f, 0.426167876f,
    0.427555084f, 0.428941280f, 0.430326492f, 0.431710660f,
    0.433093816f, 0.434475958f, 0.435857087f, 0.437237173f,
    0.438616246f, 0.439994276f, 0.441371262f, 0.442747235f,
    0.444122136f, 0.445496023f, 0.446868837f, 0.448240608f,
    0.449611336f, 0.450980991f, 0.452349573f, 0.453717113f,
    0.455083579f, 0.456448972f, 0.457813293f, 0.459176540f,
    0.460538715f, 0.461899787f, 0.463259786f, 0.464618683f,
    0.465976506f, 0.467333198f, 0.468688816f, 0.470043331f,
    0.471396744f, 0.472749025f, 0.474100202f, 0.475450277f,
    0.476799220f, 0.478147060f, 0.479493767f, 0.480839342f,
    0.482183784f, 0.483527064f, 0.484869242f, 0.486210287f,
    0.487550169f, 0.488888890f, 0.490226477f, 0.491562903f,
    0.492898196f, 0.494232297f, 0.495565265f, 0.496897042f,
    0.498227656f, 0.499557108f, 0.500885367f, 0.502212465f,
    0.503538370f, 0.504863083f, 0.506186664f, 0.507508993f,
    0.508830130f, 0.510150075f, 0.511468828f, 0.512786388f,
    0.514102757f, 0.515417874f, 0.516731799f, 0.518044531f,
    0.519356012f, 0.520666242f, 0.521975279f, 0.523283124f,
    0.524589658f, 0.525895000f, 0.527199149f, 0.528501987f,
    0.529803634f, 0.531104028f, 0.532403111f, 0.533701003f,
    0.534997642f, 0.536292970f, 0.537587047f, 0.538879931f,
    0.540171444f, 0.541461766f, 0.542750776f, 0.544038534f,
    0.545324981f, 0.546610177f, 0.547894061f, 0.549176633f,
    0.550457954f, 0.551737964f, 0.553016722f, 0.554294109f,
    0.555570245f, 0.556845009f, 0.558118522f, 0.559390724f,
    0.560661554f, 0.561931133f, 0.563199341f, 0.564466238f,
    0.565731823f, 0.566996038f, 0.568258941f, 0.569520533f,
    0.570780754f, 0.572039604f, 0.573297143f, 0.574553370f,
    0.575808167f, 0.577061653f, 0.578313768f, 0.579564571f,
    0.580813944f, 0.582062006f, 0.583308637f, 0.584553957f,
    0.585797846f, 0.587040365f, 0.588281572f, 0.589521289f,
    0.590759695f, 0.591996670f, 0.593232274f, 0.594466507f,
    0.595699310f, 0.596930683f, 0.598160684f, 0.599389315f,
    0.600616455f, 0.601842225f, 0.603066623f, 0.604289532f,
    0.605511069f, 0.606731117f, 0.607949793f, 0.609167039f,
    0.610382795f, 0.611597180f, 0.612810075f, 0.614021540f,
    0.615231574f, 0.616440177f, 0.617647290f, 0.618852973f,
    0.620057225f, 0.621259987f, 0.622461259f, 0.623661101f,
    0.624859512f, 0.626056373f, 0.627251804f, 0.628445745f,
    0.629638255f, 0.630829215f, 0.632018745f, 0.633206785f,
    0.634393275f, 0.635578334f, 0.636761844f, 0.637943923f,
    0.639124453f, 0.640303493f, 0.641481042f, 0.642657042f,
    0.643831551f, 0.645004511f, 0.646176040f, 0.647345960f,
    0.648514390f, 0.649681330f, 0.650846660f, 0.652010560f,
    0.653172851f, 0.654333591f, 0.655492842f, 0.656650543f,
    0.657806695f, 0.658961296f, 0.660114348f, 0.661265850f,
    0.662415802f, 0.663564146f, 0.664710999f, 0.665856242f,
    0.666999936f, 0.668142021f, 0.669282615f, 0.670421541f,
    0.671558976f, 0.672694743f, 0.673829019f, 0.674961627f,
    0.676092684f, 0.677222192f, 0.678350031f, 0.679476321f,
    0.680601001f, 0.681724072f, 0.682845533f, 0.683965385f,
    0.685083687f, 0.686200321f, 0.687315345f, 0.688428760f,
    0.689540565f, 0.690650702f, 0.691759229f, 0.692866147f,
    0.693971455f, 0.695075095f, 0.696177125f, 0.697277486f,
    0.698376238f, 0.699473321f, 0.700568795f, 0.701662600f,
    0.702754736f, 0.703845263f, 0.704934061f, 0.706021249f,
    0.707106769f, 0.708190620f, 0.709272802f, 0.710353374f,
    0.711432219f, 0.712509394f, 0.713584840f, 0.714658678f,
    0.715730846f, 0.716801286f, 0.717870057f, 0.718937099f,
    0.720002532f, 0.721066177f, 0.722128212f, 0.723188460f,
    0.724247098f, 0.725303948f, 0.726359129f, 0.727412641f,
    0.728464365f, 0.729514420f, 0.730562747f, 0.731609404f,
    0.732654274f, 0.733697414f, 0.734738886f, 0.735778570f,
    0.736816585f, 0.737852812f, 0.738887310f, 0.739920080f,
    0.740951121f, 0.741980433f, 0.743007958f, 0.744033754f,
    0.745057762f, 0.746080101f, 0.747100592f, 0.748119354f,
    0.749136388f, 0.750151634f, 0.751165152f, 0.752176821f,
    0.753186822f, 0.754194975f, 0.755201399f, 0.756205976f,
    0.757208824f, 0.758209884f, 0.759209216f, 0.760206699f,
    0.761202395f, 0.762196302f, 0.763188422f, 0.764178753f,
    0.765167236f, 0.766153991f, 0.767138898f, 0.768122017f,
    0.769103348f, 0.770082831f, 0.771060526f, 0.772036374f,
    0.773010433f, 0.773982704f, 0.774953127f, 0.775921702f,
    0.776888490f, 0.777853429f, 0.778816521f, 0.779777765f,
    0.780737221f, 0.781694829f, 0.782650590f, 0.783604503f,
    0.784556568f, 0.785506845f, 0.786455214f, 0.787401736f,
    0.788346410f, 0.789289236f, 0.790230215f, 0.791169345f,
    0.792106569f, 0.793041945f, 0.793975472f, 0.794907153f,
    0.795836926f, 0.796764791f, 0.797690868f, 0.798614979f,
    0.799537241f, 0.800457656f, 0.801376164f, 0.802292824f,
    0.803207517f, 0.804120362f, 0.805031359f, 0.805940390f,
    0.806847572f, 0.807752848f, 0.808656156f, 0.809557617f,
    0.810457170f, 0.811354876f, 0.812250614f, 0.813144386f,
    0.814036310f, 0.814926326f, 0.815814435f, 0.816700578f,
    0.817584813f, 0.818467140f, 0.819347501f, 0.820225954f,
    0.821102500f, 0.821977139f, 0.822849810f, 0.823720515f,
    0.824589312f, 0.825456142f, 0.826321065f, 0.827184021f,
    0.828045070f, 0.828904092f, 0.829761207f, 0.830616415f,
    0.831469595f, 0.832320869f, 0.833170176f, 0.834017515f,
    0.834862888f, 0.835706294f, 0.836547732f, 0.837387204f,
    0.838224709f, 0.839060247f, 0.839893818f, 0.840725362f,
    0.841554999f, 0.842382610f, 0.843208253f, 0.844031870f,
    0.844853580f, 0.845673263f, 0.846490920f, 0.847306609f,
    0.848120332f, 0.848932028f, 0.849741757f, 0.850549459f,
    0.851355195f, 0.852158904f, 0.852960587f, 0.853760302f,
    0.854557991f, 0.855353653f, 0.856147349f, 0.856938958f,
    0.857728601f, 0.858516216f, 0.859301805f, 0.860085368f,
    0.860866964f, 0.861646473f, 0.862423956f, 0.863199413f,
    0.863972843f, 0.864744246f, 0.865513623f, 0.866280973f,
    0.867046237f, 0.867809474f, 0.868570685f, 0.869329870f,
    0.870086968f, 0.870842040f, 0.871595085f, 0.872346044f,
    0.873094976f, 0.873841822f, 0.874586642f, 0.875329375f,
    0.876070082f, 0.876808703f, 0.877545297f, 0.878279805f,
    0.879012227f, 0.879742622f, 0.880470872f, 0.881197095f,
    0.881921291f, 0.882643342f, 0.883363366f, 0.884081244f,
    0.884797096f, 0.885510862f, 0.886222541f, 0.886932135f,
    0.887639642f, 0.888345063f, 0.889048338f, 0.889749587f,
    0.890448749f, 0.891145766f, 0.891840696f, 0.892533541f,
    0.893224299f, 0.893912971f, 0.894599497f, 0.895283937f,
    0.895966232f, 0.896646500f, 0.897324562f, 0.898000598f,
    0.898674488f, 0.899346232f, 0.900015891f, 0.900683403f,
    0.901348829f, 0.902012169f, 0.902673304f, 0.903332353f,
    0.903989315f, 0.904644072f, 0.905296743f, 0.905947268f,
    0.906595707f, 0.907242000f, 0.907886088f, 0.908528090f,
    0.909168005f, 0.909805715f, 0.910441279f, 0.911074758f,
    0.911706030f, 0.912335157f, 0.912962198f, 0.913587034f,
    0.914209783f, 0.914830327f, 0.915448725f, 0.916064978f,
    0.916679084f, 0.917290986f, 0.917900801f, 0.918508410f,
    0.919113874f, 0.919717133f, 0.920318305f, 0.920917213f,
    0.921514034f, 0.922108650f, 0.922701120f, 0.923291445f,
    0.923879504f, 0.924465477f, 0.925049245f, 0.925630808f,
    0.926210225f, 0.926787496f, 0.927362502f, 0.927935421f,
    0.928506076f, 0.929074585f, 0.929640889f, 0.930205047f,
    0.930766940f, 0.931326687f, 0.931884289f, 0.932439625f,
    0.932992816f, 0.933543801f, 0.934092522f, 0.934639156f,
    0.935183525f, 0.935725689f, 0.936265647f, 0.936803460f,
    0.937339008f, 0.937872350f, 0.938403547f, 0.938932478f,
    0.939459205f, 0.939983726f, 0.940506041f, 0.941026151f,
    0.941544056f, 0.942059755f, 0.942573190f, 0.943084419f,
    0.943593442f, 0.944100261f, 0.944604814f, 0.945107222f,
    0.945607305f, 0.946105242f, 0.946600914f, 0.947094381f,
    0.947585583f, 0.948074579f, 0.948561370f, 0.949045897f,
    0.949528158f, 0.950008273f, 0.950486064f, 0.950961649f,
    0.951435030f, 0.951906145f, 0.952374995f, 0.952841640f,
    0.953306019f, 0.953768194f, 0.954228103f, 0.954685748f,
    0.955141187f, 0.955594361f, 0.956045270f, 0.956493914f,
    0.956940353f, 0.957384527f, 0.957826436f, 0.958266079f,
    0.958703458f, 0.959138632f, 0.959571540f, 0.960002124f,
    0.960430503f, 0.960856616f, 0.961280465f, 0.961702049f,
    0.962121427f, 0.962538481f, 0.962953269f, 0.963365793f,
    0.963776052f, 0.964184046f, 0.964589775f, 0.964993238f,
    0.965394437f, 0.965793371f, 0.966189981f, 0.966584384f,
    0.966976464f, 0.967366278f, 0.967753828f, 0.968139112f,
    0.968522072f, 0.968902826f, 0.969281256f, 0.969657362f,
    0.970031261f, 0.970402837f, 0.970772147f, 0.971139133f,
    0.971503913f, 0.971866310f, 0.972226501f, 0.972584367f,
    0.972939968f, 0.973293245f, 0.973644257f, 0.973992944f,
    0.974339366f, 0.974683523f, 0.975025356f, 0.975364864f,
    0.975702107f, 0.976037085f, 0.976369739f, 0.976700068f,
    0.977028131f, 0.977353871f, 0.977677345f, 0.977998495f,
    0.978317380f, 0.978633940f, 0.978948176f, 0.979260147f,
    0.979569793f, 0.979877114f, 0.980182111f, 0.980484843f,
    0.980785251f, 0.981083393f, 0.981379211f, 0.981672704f,
    0.981963873f, 0.982252717f, 0.982539296f, 0.982823551f,
    0.983105481f, 0.983385086f, 0.983662426f, 0.983937442f,
    0.984210074f, 0.984480441f, 0.984748483f, 0.985014260f,
    0.985277653f, 0.985538721f, 0.985797524f, 0.986053944f,
    0.986308098f, 0.986559927f, 0.986809373f, 0.987056553f,
    0.987301409f, 0.987543941f, 0.987784147f, 0.988022029f,
    0.988257587f, 0.988490820f, 0.988721669f, 0.988950253f,
    0.989176512f, 0.989400446f, 0.989621997f, 0.989841282f,
    0.990058184f, 0.990272820f, 0.990485072f, 0.990695000f,
    0.990902662f, 0.991107941f, 0.991310835f, 0.991511464f,
    0.991709769f, 0.991905689f, 0.992099285f, 0.992290616f,
    0.992479563f, 0.992666125f, 0.992850423f, 0.993032336f,
    0.993211925f, 0.993389189f, 0.993564129f, 0.993736744f,
    0.993906975f, 0.994074881f, 0.994240463f, 0.994403660f,
    0.994564593f, 0.994723141f, 0.994879305f, 0.995033205f,
    0.995184720f, 0.995333910f, 0.995480776f, 0.995625257f,
    0.995767415f, 0.995907247f, 0.996044695f, 0.996179819f,
    0.996312618f, 0.996443033f, 0.996571124f, 0.996696889f,
    0.996820271f, 0.996941328f, 0.997060061f, 0.997176409f,
    0.997290432f, 0.997402132f, 0.997511446f, 0.997618437f,
    0.997723043f, 0.997825325f, 0.997925282f, 0.998022854f,
    0.998118103f, 0.998211026f, 0.998301566f, 0.998389721f,
    0.998475552f, 0.998559058f, 0.998640239f, 0.998719037f,
    0.998795450f, 0.998869538f, 0.998941302f, 0.999010682f,
    0.999077737f, 0.999142408f, 0.999204755f, 0.999264777f,
    0.999322355f, 0.999377668f, 0.999430597f, 0.999481201f,
    0.999529421f, 0.999575317f, 0.999618828f, 0.999660015f,
    0.999698818f, 0.999735296f, 0.999769390f, 0.999801159f,
    0.999830604f, 0.999857664f, 0.999882340f, 0.999904692f,
    0.999924719f, 0.999942362f, 0.999957621f, 0.999970615f,
    0.999981165f, 0.999989390f, 0.999995291f, 0.999998808f,
};

s16 gArctanTable[0x401] = {
    0x0000, 0x000A, 0x0014, 0x001F, 0x0029, 0x0033, 0x003D, 0x0047,
    0x0051, 0x005C, 0x0066, 0x0070, 0x007A, 0x0084, 0x008F, 0x0099,
    0x00A3, 0x00AD, 0x00B7, 0x00C2, 0x00CC, 0x00D6, 0x00E0, 0x00EA,
    0x00F4, 0x00FF, 0x0109, 0x0113, 0x011D, 0x0127, 0x0131, 0x013C,
    0x0146, 0x0150, 0x015A, 0x0164, 0x016F, 0x0179, 0x0183, 0x018D,
    0x0197, 0x01A1, 0x01AC, 0x01B6, 0x01C0, 0x01CA, 0x01D4, 0x01DE,
    0x01E9, 0x01F3, 0x01FD, 0x0207, 0x0211, 0x021B, 0x0226, 0x0230,
    0x023A, 0x0244, 0x024E, 0x0258, 0x0262, 0x026D, 0x0277, 0x0281,
    0x028B, 0x0295, 0x029F, 0x02A9, 0x02B4, 0x02BE, 0x02C8, 0x02D2,
    0x02DC, 0x02E6, 0x02F0, 0x02FB, 0x0305, 0x030F, 0x0319, 0x0323,
    0x032D, 0x0337, 0x0341, 0x034C, 0x0356, 0x0360, 0x036A, 0x0374,
    0x037E, 0x0388, 0x0392, 0x039C, 0x03A7, 0x03B1, 0x03BB, 0x03C5,
    0x03CF, 0x03D9, 0x03E3, 0x03ED, 0x03F7, 0x0401, 0x040C, 0x0416,
    0x0420, 0x042A, 0x0434, 0x043E, 0x0448, 0x0452, 0x045C, 0x0466,
    0x0470, 0x047A, 0x0484, 0x048E, 0x0499, 0x04A3, 0x04AD, 0x04B7,
    0x04C1, 0x04CB, 0x04D5, 0x04DF, 0x04E9, 0x04F3, 0x04FD, 0x0507,
    0x0511, 0x051B, 0x0525, 0x052F, 0x0539, 0x0543, 0x054D, 0x0557,
    0x0561, 0x056B, 0x0575, 0x057F, 0x0589, 0x0593, 0x059D, 0x05A7,
    0x05B1, 0x05BB, 0x05C5, 0x05CF, 0x05D9, 0x05E3, 0x05ED, 0x05F7,
    0x0601, 0x060B, 0x0615, 0x061F, 0x0629, 0x0633, 0x063D, 0x0647,
    0x0651, 0x065B, 0x0665, 0x066E, 0x0678, 0x0682, 0x068C, 0x0696,
    0x06A0, 0x06AA, 0x06B4, 0x06BE, 0x06C8, 0x06D2, 0x06DC, 0x06E5,
    0x06EF, 0x06F9, 0x0703, 0x070D, 0x0717, 0x0721, 0x072B, 0x0735,
    0x073E, 0x0748, 0x0752, 0x075C, 0x0766, 0x0770, 0x077A, 0x0783,
    0x078D, 0x0797, 0x07A1, 0x07AB, 0x07B5, 0x07BE, 0x07C8, 0x07D2,
    0x07DC, 0x07E6, 0x07EF, 0x07F9, 0x0803, 0x080D, 0x0817, 0x0820,
    0x082A, 0x0834, 0x083E, 0x0848, 0x0851, 0x085B, 0x0865, 0x086F,
    0x0878, 0x0882, 0x088C, 0x0896, 0x089F, 0x08A9, 0x08B3, 0x08BD,
    0x08C6, 0x08D0, 0x08DA, 0x08E3, 0x08ED, 0x08F7, 0x0901, 0x090A,
    0x0914, 0x091E, 0x0927, 0x0931, 0x093B, 0x0944, 0x094E, 0x0958,
    0x0961, 0x096B, 0x0975, 0x097E, 0x0988, 0x0992, 0x099B, 0x09A5,
    0x09AE, 0x09B8, 0x09C2, 0x09CB, 0x09D5, 0x09DE, 0x09E8, 0x09F2,
    0x09FB, 0x0A05, 0x0A0E, 0x0A18, 0x0A22, 0x0A2B, 0x0A35, 0x0A3E,
    0x0A48, 0x0A51, 0x0A5B, 0x0A64, 0x0A6E, 0x0A77, 0x0A81, 0x0A8B,
    0x0A94, 0x0A9E, 0x0AA7, 0x0AB1, 0x0ABA, 0x0AC4, 0x0ACD, 0x0AD7,
    0x0AE0, 0x0AE9, 0x0AF3, 0x0AFC, 0x0B06, 0x0B0F, 0x0B19, 0x0B22,
    0x0B2C, 0x0B35, 0x0B3F, 0x0B48, 0x0B51, 0x0B5B, 0x0B64, 0x0B6E,
    0x0B77, 0x0B80, 0x0B8A, 0x0B93, 0x0B9D, 0x0BA6, 0x0BAF, 0x0BB9,
    0x0BC2, 0x0BCB, 0x0BD5, 0x0BDE, 0x0BE7, 0x0BF1, 0x0BFA, 0x0C03,
    0x0C0D, 0x0C16, 0x0C1F, 0x0C29, 0x0C32, 0x0C3B, 0x0C45, 0x0C4E,
    0x0C57, 0x0C60, 0x0C6A, 0x0C73, 0x0C7C, 0x0C86, 0x0C8F, 0x0C98,
    0x0CA1, 0x0CAB, 0x0CB4, 0x0CBD, 0x0CC6, 0x0CCF, 0x0CD9, 0x0CE2,
    0x0CEB, 0x0CF4, 0x0CFD, 0x0D07, 0x0D10, 0x0D19, 0x0D22, 0x0D2B,
    0x0D34, 0x0D3E, 0x0D47, 0x0D50, 0x0D59, 0x0D62, 0x0D6B, 0x0D74,
    0x0D7D, 0x0D87, 0x0D90, 0x0D99, 0x0DA2, 0x0DAB, 0x0DB4, 0x0DBD,
    0x0DC6, 0x0DCF, 0x0DD8, 0x0DE1, 0x0DEA, 0x0DF3, 0x0DFC, 0x0E05,
    0x0E0F, 0x0E18, 0x0E21, 0x0E2A, 0x0E33, 0x0E3C, 0x0E45, 0x0E4E,
    0x0E56, 0x0E5F, 0x0E68, 0x0E71, 0x0E7A, 0x0E83, 0x0E8C, 0x0E95,
    0x0E9E, 0x0EA7, 0x0EB0, 0x0EB9, 0x0EC2, 0x0ECB, 0x0ED4, 0x0EDC,
    0x0EE5, 0x0EEE, 0x0EF7, 0x0F00, 0x0F09, 0x0F12, 0x0F1B, 0x0F23,
    0x0F2C, 0x0F35, 0x0F3E, 0x0F47, 0x0F50, 0x0F58, 0x0F61, 0x0F6A,
    0x0F73, 0x0F7C, 0x0F84, 0x0F8D, 0x0F96, 0x0F9F, 0x0FA7, 0x0FB0,
    0x0FB9, 0x0FC2, 0x0FCA, 0x0FD3, 0x0FDC, 0x0FE5, 0x0FED, 0x0FF6,
    0x0FFF, 0x1007, 0x1010, 0x1019, 0x1021, 0x102A, 0x1033, 0x103B,
    0x1044, 0x104D, 0x1055, 0x105E, 0x1067, 0x106F, 0x1078, 0x1080,
    0x1089, 0x1092, 0x109A, 0x10A3, 0x10AB, 0x10B4, 0x10BC, 0x10C5,
    0x10CE, 0x10D6, 0x10DF, 0x10E7, 0x10F0, 0x10F8, 0x1101, 0x1109,
    0x1112, 0x111A, 0x1123, 0x112B, 0x1134, 0x113C, 0x1145, 0x114D,
    0x1156, 0x115E, 0x1166, 0x116F, 0x1177, 0x1180, 0x1188, 0x1191,
    0x1199, 0x11A1, 0x11AA, 0x11B2, 0x11BB, 0x11C3, 0x11CB, 0x11D4,
    0x11DC, 0x11E4, 0x11ED, 0x11F5, 0x11FD, 0x1206, 0x120E, 0x1216,
    0x121F, 0x1227, 0x122F, 0x1237, 0x1240, 0x1248, 0x1250, 0x1259,
    0x1261, 0x1269, 0x1271, 0x127A, 0x1282, 0x128A, 0x1292, 0x129A,
    0x12A3, 0x12AB, 0x12B3, 0x12BB, 0x12C3, 0x12CC, 0x12D4, 0x12DC,
    0x12E4, 0x12EC, 0x12F4, 0x12FC, 0x1305, 0x130D, 0x1315, 0x131D,
    0x1325, 0x132D, 0x1335, 0x133D, 0x1345, 0x134D, 0x1355, 0x135E,
    0x1366, 0x136E, 0x1376, 0x137E, 0x1386, 0x138E, 0x1396, 0x139E,
    0x13A6, 0x13AE, 0x13B6, 0x13BE, 0x13C6, 0x13CE, 0x13D6, 0x13DE,
    0x13E6, 0x13ED, 0x13F5, 0x13FD, 0x1405, 0x140D, 0x1415, 0x141D,
    0x1425, 0x142D, 0x1435, 0x143D, 0x1444, 0x144C, 0x1454, 0x145C,
    0x1464, 0x146C, 0x1473, 0x147B, 0x1483, 0x148B, 0x1493, 0x149B,
    0x14A2, 0x14AA, 0x14B2, 0x14BA, 0x14C1, 0x14C9, 0x14D1, 0x14D9,
    0x14E0, 0x14E8, 0x14F0, 0x14F8, 0x14FF, 0x1507, 0x150F, 0x1516,
    0x151E, 0x1526, 0x152D, 0x1535, 0x153D, 0x1544, 0x154C, 0x1554,
    0x155B, 0x1563, 0x156B, 0x1572, 0x157A, 0x1581, 0x1589, 0x1591,
    0x1598, 0x15A0, 0x15A7, 0x15AF, 0x15B7, 0x15BE, 0x15C6, 0x15CD,
    0x15D5, 0x15DC, 0x15E4, 0x15EB, 0x15F3, 0x15FA, 0x1602, 0x1609,
    0x1611, 0x1618, 0x1620, 0x1627, 0x162F, 0x1636, 0x163E, 0x1645,
    0x164C, 0x1654, 0x165B, 0x1663, 0x166A, 0x1671, 0x1679, 0x1680,
    0x1688, 0x168F, 0x1696, 0x169E, 0x16A5, 0x16AC, 0x16B4, 0x16BB,
    0x16C2, 0x16CA, 0x16D1, 0x16D8, 0x16E0, 0x16E7, 0x16EE, 0x16F6,
    0x16FD, 0x1704, 0x170B, 0x1713, 0x171A, 0x1721, 0x1728, 0x1730,
    0x1737, 0x173E, 0x1745, 0x174C, 0x1754, 0x175B, 0x1762, 0x1769,
    0x1770, 0x1778, 0x177F, 0x1786, 0x178D, 0x1794, 0x179B, 0x17A2,
    0x17AA, 0x17B1, 0x17B8, 0x17BF, 0x17C6, 0x17CD, 0x17D4, 0x17DB,
    0x17E2, 0x17E9, 0x17F0, 0x17F7, 0x17FE, 0x1806, 0x180D, 0x1814,
    0x181B, 0x1822, 0x1829, 0x1830, 0x1837, 0x183E, 0x1845, 0x184C,
    0x1853, 0x185A, 0x1860, 0x1867, 0x186E, 0x1875, 0x187C, 0x1883,
    0x188A, 0x1891, 0x1898, 0x189F, 0x18A6, 0x18AD, 0x18B3, 0x18BA,
    0x18C1, 0x18C8, 0x18CF, 0x18D6, 0x18DD, 0x18E3, 0x18EA, 0x18F1,
    0x18F8, 0x18FF, 0x1906, 0x190C, 0x1913, 0x191A, 0x1921, 0x1928,
    0x192E, 0x1935, 0x193C, 0x1943, 0x1949, 0x1950, 0x1957, 0x195D,
    0x1964, 0x196B, 0x1972, 0x1978, 0x197F, 0x1986, 0x198C, 0x1993,
    0x199A, 0x19A0, 0x19A7, 0x19AE, 0x19B4, 0x19BB, 0x19C2, 0x19C8,
    0x19CF, 0x19D5, 0x19DC, 0x19E3, 0x19E9, 0x19F0, 0x19F6, 0x19FD,
    0x1A04, 0x1A0A, 0x1A11, 0x1A17, 0x1A1E, 0x1A24, 0x1A2B, 0x1A31,
    0x1A38, 0x1A3E, 0x1A45, 0x1A4B, 0x1A52, 0x1A58, 0x1A5F, 0x1A65,
    0x1A6C, 0x1A72, 0x1A79, 0x1A7F, 0x1A86, 0x1A8C, 0x1A93, 0x1A99,
    0x1A9F, 0x1AA6, 0x1AAC, 0x1AB3, 0x1AB9, 0x1AC0, 0x1AC6, 0x1ACC,
    0x1AD3, 0x1AD9, 0x1ADF, 0x1AE6, 0x1AEC, 0x1AF2, 0x1AF9, 0x1AFF,
    0x1B05, 0x1B0C, 0x1B12, 0x1B18, 0x1B1F, 0x1B25, 0x1B2B, 0x1B32,
    0x1B38, 0x1B3E, 0x1B44, 0x1B4B, 0x1B51, 0x1B57, 0x1B5D, 0x1B64,
    0x1B6A, 0x1B70, 0x1B76, 0x1B7D, 0x1B83, 0x1B89, 0x1B8F, 0x1B95,
    0x1B9C, 0x1BA2, 0x1BA8, 0x1BAE, 0x1BB4, 0x1BBA, 0x1BC1, 0x1BC7,
    0x1BCD, 0x1BD3, 0x1BD9, 0x1BDF, 0x1BE5, 0x1BEB, 0x1BF2, 0x1BF8,
    0x1BFE, 0x1C04, 0x1C0A, 0x1C10, 0x1C16, 0x1C1C, 0x1C22, 0x1C28,
    0x1C2E, 0x1C34, 0x1C3A, 0x1C40, 0x1C46, 0x1C4C, 0x1C52, 0x1C58,
    0x1C5E, 0x1C64, 0x1C6A, 0x1C70, 0x1C76, 0x1C7C, 0x1C82, 0x1C88,
    0x1C8E, 0x1C94, 0x1C9A, 0x1CA0, 0x1CA6, 0x1CAC, 0x1CB2, 0x1CB8,
    0x1CBE, 0x1CC3, 0x1CC9, 0x1CCF, 0x1CD5, 0x1CDB, 0x1CE1, 0x1CE7,
    0x1CED, 0x1CF3, 0x1CF8, 0x1CFE, 0x1D04, 0x1D0A, 0x1D10, 0x1D16,
    0x1D1B, 0x1D21, 0x1D27, 0x1D2D, 0x1D33, 0x1D38, 0x1D3E, 0x1D44,
    0x1D4A, 0x1D4F, 0x1D55, 0x1D5B, 0x1D61, 0x1D66, 0x1D6C, 0x1D72,
    0x1D78, 0x1D7D, 0x1D83, 0x1D89, 0x1D8E, 0x1D94, 0x1D9A, 0x1DA0,
    0x1DA5, 0x1DAB, 0x1DB1, 0x1DB6, 0x1DBC, 0x1DC2, 0x1DC7, 0x1DCD,
    0x1DD3, 0x1DD8, 0x1DDE, 0x1DE3, 0x1DE9, 0x1DEF, 0x1DF4, 0x1DFA,
    0x1DFF, 0x1E05, 0x1E0B, 0x1E10, 0x1E16, 0x1E1B, 0x1E21, 0x1E26,
    0x1E2C, 0x1E32, 0x1E37, 0x1E3D, 0x1E42, 0x1E48, 0x1E4D, 0x1E53,
    0x1E58, 0x1E5E, 0x1E63, 0x1E69, 0x1E6E, 0x1E74, 0x1E79, 0x1E7F,
    0x1E84, 0x1E8A, 0x1E8F, 0x1E94, 0x1E9A, 0x1E9F, 0x1EA5, 0x1EAA,
    0x1EB0, 0x1EB5, 0x1EBA, 0x1EC0, 0x1EC5, 0x1ECB, 0x1ED0, 0x1ED5,
    0x1EDB, 0x1EE0, 0x1EE6, 0x1EEB, 0x1EF0, 0x1EF6, 0x1EFB, 0x1F00,
    0x1F06, 0x1F0B, 0x1F10, 0x1F16, 0x1F1B, 0x1F20, 0x1F26, 0x1F2B,
    0x1F30, 0x1F36, 0x1F3B, 0x1F40, 0x1F45, 0x1F4B, 0x1F50, 0x1F55,
    0x1F5A, 0x1F60, 0x1F65, 0x1F6A, 0x1F6F, 0x1F75, 0x1F7A, 0x1F7F,
    0x1F84, 0x1F8A, 0x1F8F, 0x1F94, 0x1F99, 0x1F9E, 0x1FA4, 0x1FA9,
    0x1FAE, 0x1FB3, 0x1FB8, 0x1FBD, 0x1FC3, 0x1FC8, 0x1FCD, 0x1FD2,
    0x1FD7, 0x1FDC, 0x1FE1, 0x1FE6, 0x1FEC, 0x1FF1, 0x1FF6, 0x1FFB,
    0x2000
};
